最近我继承了一个库,其中有一个类上存在更新方法。以下是一个示例:
onPointerMove(pointer, x, y, isPressed){
var floor = Math.floor;
var cx = this.currentX;
var cy = this.currentY;
var tm = this.toolManager;
}
这种代码大多只存在于性能关键的部分。项目的大部分内容都不是这样编写的。
- Floor被使用了两次。将其缓存到本地变量中是否只会在每次运行时强制进行一些“临时”内存分配?这样做比查找函数更快吗?
- 该函数体中多次引用this.currentX,但缓存它真的更快吗?我认为this.currentX不涉及任何查找问题,但也许我错了。既然这种情况发生在示例中剩余的代码中,所有这些属性都被缓存。
我也期望像在“for”之前缓存长度这样的操作是优化引擎解释代码时自动完成的另一个例子(仅当它确实有所区别时)。
我真正想知道的是...从今天起,我应该对我的代码进行微观优化(针对常绿浏览器)或者是否已经有新的技术取代了2010年(我读《高性能JavaScript》时)的这些优化技巧。
谢谢!