认识 V8 引擎( 七 )


  • 类型 。对于函数,JavaScript是一种动态类型语言,JavaScriptCore和V8都使用隐藏类和内嵌缓存来提高性能,为了保证缓存命中率,一个函数应该使用较少的数据类型;对于数组,应尽量存放相同类型的数据,这样就可以通过偏移位置来访问 。
  • 数据表示 。简单类型数据(如整型)直接保存在句柄中,可以减少寻址时间和内存占用,如果可以使用整数表示的,尽量不要用浮点类型 。
  • 内存 。虽然JavaScript语言会自己进行垃圾回收,但我们也应尽量做到及时回收不用的内存,对不再使用的对象设置为null或使用delete方法来删除(使用delete方法删除会触发隐藏类新建,需要更多的额外操作) 。
  • 优化回滚 。在执行多次之后,不要出现修改对象类型的语句,尽量不要触发优化回滚,否则会大幅度降低代码的性能 。
  • 新机制 。使用JavaScript引擎或者渲染引擎提供的新机制和新接口提高性能 。
参考资料
  • 《WebKit技术内幕》
  • 《JavaScript高级程序设计》
  • 《深入浅出Node.js》
  • 《为什么V8引擎这么快》
  • 《V8 Ignition:JS 引擎与字节码的不解之缘 - CNode技术社区》

【认识 V8 引擎】


推荐阅读