我正在制作相当重的画布效果,需要从用户系统中挤出一点速度。
这是一个场景:
function ImCalledEveryMouseMove(blah,blah)
{
var imgData = myctx.getImageData(0,0,canvas.width,canvas.height)
var somevar1 = (some maths process);
var somevar2 = (some maths process);
var somevar3 = (some maths process);
var somevar4 = (some maths process);
var somevar5 = (some maths process);
for(every pixel channel etc){do some stuff...
// and so on
}
每个变量都是在函数范围内重新创建的。
我的问题是:
最有效的方法是降低开销吗?
也许:
var imgData,somevar1,somevar2,somevar3... an so on
function ImCalledEveryMouseMove(blah,blah)
{
imgData = myctx.getImageData(0,0,canvas.width,canvas.height)
somevar1 = (some maths process);
somevar2 = (some maths process);
因为没有新的内存分配?
或者也许:
var cache = {};
function ImCalledEveryMouseMove(blah,blah)
{
cache.imgData = myctx.getImageData(0,0,canvas.width,canvas.height)
cache.somevar1 = (some maths process);
cache.somevar2 = (some maths process);
不知道为什么,但我读到了一些关于这是有利的,因为动态记忆某事或其他但不记得为什么......
有人可以提出建议吗?