当用作Node.js的JS Engine时,Microsoft的ChakraCore是否比Google的V8提供任何性能优势

Sum*_*ick 21 javascript c++ v8 node.js chakra

[ 我编辑了我的问题,将场景缩小到只有Node.js. 请重新打开它.这是一个有用的问题,正如ChakraCore还处于很小的年龄时,可能会在未来及时提出正确的答案.但这个问题是有效的,应该在这里 ]

我们都知道/阅读/听说过谷歌V8引擎的荣耀,以及它如何让node.js成为多年来的美丽.

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

请回复一些事实和结果,因为有人不应该使用/选择Chakra只是因为他/她喜欢微软或同样适用于V8和Google.

谢谢.

Ale*_*ker 22

它们有何不同?

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

2015年,微软推出了对Chakra的Node.js支持,允许开发人员定位Windows IoT核心平台.最近ChakraCore的开源使微软能够在开放的情况下进行开发,并更好地与Node.js发布时间表保持一致.

在最近的一篇JavaScript Air剧集中,史蒂夫·卢科提到Chakra团队正在计划"真正认真对待社区,并认真对待引擎的引导方向[并且]给社区带来更多的投入,例如,他们已经朝着V8的方向".

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

基准测试不一定表示实际性能,但VM性能的这种竞争最终将为所有VM的用户带来更快的Node.js运行时.

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

  • 由于投票非常接近,我的问题最终可能会结束。但这个答案很有帮助,并且非常接近我正在寻找的内容。也感谢您指出基准比较。投我一票:)@Alex Booker (2认同)

Jai*_*Jai 5

它们有何不同?

那么问题有点过于宽泛,无法回答目前的格式,但我会尝试回答它.

谷歌的V8引擎具有所需的所有功能,可以提供超快的性能.所以,基本上这个是nodejs的基础已经有一段时间了,它将长期存在.

在另一方面微软的ChakraCore也在积极开发具有两层结构(无法命名)查克拉垫片ChakraCore.
要注意Chakra Shim 实现了最重要的V8 API,以便底层JavaScript引擎更改对Node.js和为V8编写的其他本机插件模块是透明的.

资料来源:NodeJs-ChakraCore

对于OP:也寻找webassembly.