24

[我已经编辑了我的问题,将场景缩小到只有 Node.js。请重新打开它。这是一个有用的问题,正确的答案可能会在未来出现,而且不会很快出现,因为 ChakraCore 还很年轻。但是这个问题是有效的,应该在这里]

多年来,我们都知道/读过/听说过 Google V8 引擎的荣耀,以及它如何使 node.js 变得如此美丽。

但是现在我们可以选择在Microsoft 的 ChakraCoreGoogle 的 V8作为我们首选的 JavaScript 引擎之间进行选择,我想知道是否有人有任何证据,或者他们发现一个比另一个更有效的测试用例 nodejs

请用一些事实和结果来支持你的答案,因为有人不应该仅仅因为他/她喜欢微软或同样适用于 V8 和谷歌而使用/选择 Chakra。

谢谢。

4

2 回答 2

25

它们有何不同?

大多数现代 JavaScript 引擎将所有JavaScript 代码转换为高效的机器代码(源代码),而 Chakra 拥有智能和高性能的解释器。该解释器具有智能启发式,可以确定是将您的代码编译成机器代码还是解释它。解释器通常启动速度更快,运行所需的内存更少,这使得 Chakra 对于资源受限的环境(例如Raspberry Pi)非常有吸引力。

2015 年,Microsoft 引入了对带有 Chakra 的 Node.js 的支持,以允许开发人员以Windows IoT Core 平台为目标。最近对 ChakraCore 的开源使微软能够以开放的方式进行开发,并更好地与 Node.js 的发布时间表保持一致。

在最近的JavaScript Air 节目中Steve Lucco提到 Chakra 团队正计划“真正认真对待社区,并认真对待他们对引擎发展方向的投入 [并] 为社区提供更多的投入,而不是,例如,他们已经朝 V8 方向发展”

在努力构建内存高效的 JavaScript 引擎时,微软实际上已经构建了一个具有竞争力的快速引擎。在撰写本文时,Chakra 在某些情况下优于V8:


(来源:msecnd.net

基准不一定代表真实世界的性能,但这种虚拟机性能的竞争最终将为所有虚拟机的用户带来更快的 Node.js 运行时。

还值得一提的是,拥有自己的 JavaScript 引擎将使微软能够自由创新。一项早期的创新是时间旅行调试

于 2016-05-24T09:15:44.717 回答
6

它们有何不同?

嗯,这个问题有点太宽泛了,目前无法以这种格式回答,但我会尝试回答。

谷歌的 V8 引擎拥有所有需要的特性,以使其获得超快的性能。所以,基本上这个是 nodejs 相当长一段时间的基础,它会长期存在。

另一方面,微软的 ChakraCore也在积极开发中,它有两层结构(无法命名),分别是Chakra ShimChakraCore
需要注意的是Chakra Shim 实现了最基本的V8 API,因此底层 JavaScript 引擎的更改对于 Node.js 和其他为 V8 编写的本机插件模块是透明的。

来源:NodeJs-ChakraCore

对于 OP:也寻找webassembly

于 2016-05-24T08:11:59.900 回答