小编Sas*_*ich的帖子

V8引擎Voodoo:为什么这更快/更慢?

我目前正在研究图像编辑器,并在V8中偶然发现了关于像素操作和/或函数调用的奇怪行为.

http://jsperf.com/canvas-pixelwise-manipulation-performance

有两个测试用例.两个测试用例都应该操作内存中画布的图像数据以增加亮度.因此,他们必须迭代每个像素并操纵每个像素的4个颜色值.

情况1

情况1执行"总共1个函数调用",这意味着它将上下文和imageData传递给函数,然后迭代像素并操纵数据.一体化功能

案例2

情况2执行" 每个像素 1次函数调用",这意味着它迭代像素并为每个像素调用一个方法,然后操纵给定像素的imageData.这导致(在这种情况下)250000个额外的函数调用.

我的期望

我希望案例1比案例2快得多,因为案例2正在进行250000个额外的函数调用.

结果

在Chrome中,它恰恰相反.如果我执行250000个额外的函数调用,它比处理所有图像处理的单个函数调用更快.

我的问题:为什么?

javascript performance v8

7
推荐指数
1
解决办法
353
查看次数

标签 统计

javascript ×1

performance ×1

v8 ×1