7

The new JavaScript engine takes advantage of multiple CPU cores through Windows to interpret, compile, and run code in parallel.- http://technet.microsoft.com/en-us/library/gg699435.aspx

The Chakra engine interprets, compiles, and executes code in parallel and takes advantage of multiple CPU cores, when available.- http://msdn.microsoft.com/en-us/ie/ff468705.aspx

等等,什么?!?这是否意味着我们在 IE9 中有多线程并行 JavaScript 代码执行(在 web-workers 之外)?

我认为这只是一个糟糕的营销噱头,但希望看到更多关于此的信息。也许它们意味着不同的浏览器窗口/选项卡/进程可以使用多个 CPU?

4

1 回答 1

3

结论,主要基于评论,因此作为社区 wiki 答案提供,因此这个问题最终得到一个实际答案:

微软很可能意味着(i)解释和/或运行的单独任务;(ii) 编译并行进行。他们很可能已经应用了像 Sun 的旧 HotSpot JVM 这样的技术,以便 Javascript 虚拟机在第一个实例中解释代码,因为它可以立即开始执行此操作。它还 JIT 编译任何似乎足够频繁使用的代码,以便这样做是有益的。它甚至可能有不同级别的编译器优化,它会慢慢拨号。在这种情况下,它可能会使用多个内核来解释或运行一段代码,同时任意编译许多其他代码,或者甚至在重新编译和更好地优化正在运行的同一段代码时。

但是,在技术层面上,您也可以执行静态分析以确定回调何时在状态方面相互独立,并允许这些回调在触发事件提示时并行执行。这样,Javascript 虚拟机实际上可以并行解释/运行代码,而不会影响语言的语义串行性质。这样的系统在逻辑上将类似于超标量 CPU 的操作,尽管具有更大的移除并且具有显着更大的复杂性。

于 2011-06-07T15:16:28.927 回答