我正在制作一个非常沉重的画布效果,并且需要从用户系统中挤出每一点速度。
这是一个场景:
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);
不知道为什么,但我读到一些关于这是因为动态记忆或其他东西而有利的东西,但不记得为什么..
有人可以建议吗?