PQ-M及函数:加Buffer缓存提升查询效率

2021-08-30 10:45:39 浏览数 (2)

在《PQ-M及函数:实现Excel中的lookup分段取值(如计算提成)》例子中,案例数据只有5行,刷新数据时一闪而过就完成了,但是,如果数据增加到10万多行的时候……会怎样呢?比如这个样子:

然后我们刷新一下:

大概90秒左右完成(笔记本电脑有点儿丢人哈)。

接着我们改一下代码,给提成比例表加个Buffer(缓存,类似于一次性将这个表丢到内存里),修改前代码如下:

修改后代码如下(即增加Table.Buffer句,后面引用的时候用Buffer的提成表):

再来刷新一下:

几秒搞定!

为什么加了Buffer会效率提升这么大呢?大致原因如下:

1、 在没有加Buffer的时候,每一行数据做判断时都需要去读一次提成比率表,那么10万行相当于读10万次!

2、 加了Buffer,相当于将提成比率表一次性放到内存里,然后每次读都直接在内存里判断。

因此,当需要对某个表或某个列表(List.Buffer)进行频繁的调用时,加上Buffer能明显提高效率

0 人点赞