|
|
1
1
让我们首先转一下语句:缓存查找预计会更快,因为它避免了重复查找,即使它确实需要一些开销,而且一旦完成7次以上的查找,它就会开始更快。我想这不算太令人震惊。 至于为什么不到七次迭代的速度会慢。。。我猜标量创建的成本仍然大于那些少数查找。它肯定不止一次查找,是吗?那两个怎么样?我认为“少数”可能是一个很好的衡量标准。 |
|
|
2
1
我今天做了更多的调查,我确定的是 标量 任何种类的 这似乎只是重申了最初的问题,但我觉得我找到了更清晰的答案。例如,如果我修改本地变量子例程来执行另一个赋值,如下所示:
我还测试了范围是否导致
最后,我的困惑是基于 错误的假设 那个 . 我习惯于在C中工作,在C中,将值复制到局部变量是一个非常快速的操作(1-2 asm指令)。 确切地 为什么,没关系)。标量赋值是一个相对“慢”的操作。。。相比之下,Perl内部为获取数组对象的第n个元素所做的任何工作实际上都相当快。我在第一篇文章中提到的“乘法和加法”仍然比标量赋值的代码要少得多。 这就是为什么需要如此多的查找来匹配缓存结果的性能:简单地分配给“cache”变量大约慢7倍(对于我的设置)。 |
|
|
theflash · 将已知大小的切片在铁锈中组合成一个阵列 2 年前 |
|
|
Josep Pueyo · 如何优化向量的以下条件赋值? 2 年前 |
|
|
Community wiki · C中有哪些耗时的操作? 3 年前 |