Node.js社区中有越来越多的关于Twitter,GitHub和Facebook小组讨论的"CrankShaftScript"(和"CrankShaftJS")的引用.我认为Node.js是用C++和JavaScript编写的,所以CrankShaftScript在性能回归中指的是这样的错误:
Ada*_*dam 23
CrankShaftScript是社区给出的JS惯用语(例如某些类型的循环)在V8的CrankShaft引擎上运行得更快(est?)的名称.
CrankShaft正在被名为TurboFan的发动机取代.开发人员多年来编写的大量JS代码专门用于在CrankShaft上快速运行(例如用"CrankShaftScript"编写),使用在CrankShaft上快速运行的已知惯用语 - 由于V8引擎现在已经不再适用了不同,在CrankShaft上运行速度最快的代码不一定能保证在TurboFan上运行得最快.
如果我的答案过于冗长,那么对NodeJS基准测试线程的评论可能会更好:
......我注意到Node核心的某些部分是用CrankshaftScript编写的,即仔细调整到在Crankshaft中运行得非常好的东西.
Mat*_*ett 16
CrankShaftScript是一个社区采用的术语,用于非惯用和/或非标准兼容的JavaScript,只能在使用CrankShaft JIT编译器的v8 JavaScript运行时的特定版本中执行和/或执行.具体示例包括:以难以维护的方式编写的循环,以解决v8中的JIT优化缺陷,以及使用特定于v8的内置函数/全局变量.
这个术语最初用于描述node-chakracore和spidernode中的一些根性能问题,它们是使用ChakraCore和SpiderMonkey运行时而不是v8的Node.js发行版.
它现在被用作速记来解释为什么Node.js 8.1发布系列更新到更新版本的v8,由于v8的CrankShaft JIT被TurboFan取代而在微观和宏观基准测试中有几个性能回归(有时会被推荐)作为"TF").正如在这些问题中:
出于这些原因,Node.js社区正在积极地在Node.js核心代码以及常见的npm包中切除CrankShaftScript的实例.这应该有助于像node-chakracore这样的替代Node.js发行版能够更好地运行并减轻将来升级到Node.js中JavaScript运行时的风险.
| 归档时间: |
|
| 查看次数: |
1952 次 |
| 最近记录: |