如果javascript解释器执行"JIT编译",它是否会缓存它的结果,以便在下次加载网站时在同一个脚本上使用?

End*_*ies 12 javascript firefox interpreter jit browser-cache

为了使它更具体,我主要关心Firefox中的SpiderMonkey解释器.

因此,假设我想加快浏览器中特定网站的加载速度,或者加快加载所有具有流行脚本的网站,例如JQuery.据推测,所涉及的脚本不会在页面重新加载之间发生变化.SeaMonkey会理解那么多并避免完全重新编译吗?

如果SpiderMonkey不会,还会有其他翻译吗?或者这基本上是一个潜在的新功能,没有人关心,因为计算机速度很快?

Bor*_*sky 10

这不是Gecko所做的优化,但我们正在考虑这样做.不幸的是,这样做有一些复杂性.

  • 模式Web脚本中的当前JIT编译在诸如指向全局对象的指针之类的内容中运行,以获得最佳性能.它还会提供有关安全决策的信息.这意味着您不能对不同的全局对象重用相同的jit编译代码.您可以禁用编译和继续优化,但仍然会留下隔离专区等问题.如果天真地完成,那么去优化所有使重用成为可能的代码会导致更慢的代码. (2认同)
  • @Boris:截至今天,这个答案是否仍然正确?特别是wrt [关于同一主题的这个问题](http://stackoverflow.com/questions/1096907/do-browsers-parse-javascript-on-every-page-load). (2认同)