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工作者之外)?
我认为这只是一个糟糕的营销噱头,但我想看到更多关于此的信息。也许他们的意思是不同的浏览器窗口/标签/进程可以使用多个CPU?
答案 0 :(得分:3)
结论,主要基于评论,因此作为社区维基回答提供,以便这个问题最终得到一个实际答案:
微软可能意味着(i)解释和/或运行的单独任务; (ii)编制并行发生。他们很可能应用了Sun的旧HotSpot JVM等技术,以便Javascript虚拟机在第一个实例处解释代码,因为它可以立即开始执行。它还会JIT编译任何看起来经常使用的代码,这样做是有益的。它甚至可能具有不同级别的编译器优化,它会慢慢拨号。在这种情况下,它可能使用多个内核来解释或运行一个代码片段,同时还可以编译任意多个其他代码,甚至在重新编译和更好地优化正在运行的同一段代码时。
但是,在技术层面上也可以执行静态分析,以确定回调在状态方面是否相互独立,并允许这些回调在触发事件提示的情况下并行执行。通过这种方式,Javascript虚拟机实际上可以并行地解释/运行代码,而不会影响语言的语义串行性质。这样的系统在逻辑上类似于超标量CPU的操作,虽然更大的移除和更大的复杂性。