【问题标题】:Inline Caching in v8v8 中的内联缓存
【发布时间】:2015-09-30 16:55:36
【问题描述】:

我了解内联缓存仅在特定访问在同一位置重复执行时才有用。它不考虑单独进行的访问。

例如,
for(i=0;i

在这里,内联缓存会很有帮助,因为每次访问都是独立进行的。但考虑关注

obj.x; 对象.x; .... 1000 次..

在这种情况下,内联缓存没有帮助。这是真的吗?

如果是这种情况,在不会重复的位置/访问处修补内联缓存存根有什么意义。

【问题讨论】:

  • 好吧,你不能确定它们不会重复,因为它们所在的函数可能会被调用一百万次。除此之外,是的,在这种情况下它不是很有帮助。但至少可以说这是一种非常不寻常的编码实践。据我所知,内联缓存不知道上下文,并且总是使用,即使在完整的代码生成中也是如此。

标签: javascript caching profiling v8


【解决方案1】:

内联缓存在函数调用中持续存在,因此即使是单个访问在函数内部时也会受益。无法知道函数会被调用多少次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2011-11-03
    相关资源
    最近更新 更多