内联缓存(Inline Cache) IC
什么是IC ?
V8执行函数过程中,会观察函数中的一些调用点(CallSite)上的关键的中间数据,将这些数据缓存起来,当下次执行该函数的时候,V8就可以直接利用这些中间数据,节省了再次获取这些数据的过程,因为V8利用IC,可以有效提升一些重复代码的执行效率。
IC过程
IC会为每个函数维护一个反馈向量(FeedBack Vector),反馈向量记录了函数在执行过程中的一些关键的中间数据
注意点:
1,单态性能优于多态和超态——尽量默认对象属性不变
2,不用过度关注微优化,无须过度担心你的代码是否破坏了隐藏类或IC机制——找出影响性能瓶颈最重要