我正在学习 V8 的内部工作原理,发现有 JIT 编译器,它可以通过内联缓存技术动态优化热函数。我只有两个问题,第一,函数只要连续执行几次就算热函数吗?其次,V8 中函数在重复执行多少次之后就会变热?
V8 开发者在这里。函数的“热度”不仅仅取决于调用它的次数。相反,V8 尝试通过估计执行该函数的未优化版本所花费的时间来预测优化给定函数的有用性。其工作原理的确切启发、考虑的其他因素(例如类型反馈的完整性/稳定性)以及触发优化编译时的阈值可以并且确实随着时间的推移而改变。
原因是优化编译相当昂贵,因此您只想在可能获得回报时才进行优化。 (“可能”是因为它特别取决于该函数将来要完成多少工作,而准确地预测未来当然是不可能的,因此总是涉及一些猜测和启发法。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)