是否可以在浏览器中并行运行JavaScript代码?我愿意牺牲一些浏览器支持(IE,Opera,其他)来获得一些优势。并行JavaScript代码
回答
如果你没有操作DOM,你可以使用webworkers ......还有一些其他的限制,但检查出来@http://ejohn.org/blog/web-workers/
嗯。虽然我与“canvas”元素进行交互,但看起来很完美。可能不会这样做,我正确吗? – 2010-10-09 19:59:59
我相信更新canvas节点与DOM交互相同。但它从未受伤测试。 – 2010-10-09 20:01:16
您可以使用您的网络工作人员发送控制消息,然后解释这些控制消息以更改DOM,但没有直接访问权限。 – JKirchartz 2010-10-09 20:16:34
也许会更好地重新编写你的JavaScript的东西,一般运行得更快,而不是试图通过并行来加速Javascript。 (我希望你会发现分叉并行JavaScript活动的成本也很高,并且可能会消除任何可能的并行增益;这是并行编程的常见问题)。
Javascript在大多数浏览器中被解释为IIRC,它在它的顶部是动态的,这意味着它运行缓慢。
我在印象之下可以编写Java代码并在浏览器插件下运行它。 Java是类型安全的,JIT编译为机器代码。我期望用Javascript完成的大型计算在Java中运行速度会快很多。我并不特别提示Java;任何你可以插入的编译语言都可以。
作为替代方案,Google提供了Closure, a JavaScript compiler。这是声称是一个编译器,但看起来像一个优化器给我,我不知道太多它“优化”。但是,也许你可以使用它。我希望Closure编译器能够嵌入到Chrome中(但我不知道这个事实),也许只是运行Chrome会让你的JavaScript编译器“免费”。
编辑:在阅读关于什么关闭做,作为编译器家伙我没有太多印象。它看起来很重要的一点就是减少代码的大小,这样可以最大限度地缩短下载时间,但不一定会提高性能他们在函数内联中做的一件好事。我怀疑这将有助于切换到真正的编译语言。编辑2:在Chrome中运行JavaScript时,“Closure”编译器与引擎不同的是,其编译器与引擎不同。我被告知,但不知道这个事实,Chrome引擎有一个真正的编译器。
它将JavaScript编译为JavaScript,并一路优化(内联函数等)。请参阅[常见问题](http://code.google.com/closure/compiler/faq.html#how-different)。我担心你对JavaScript的性能与Java的比较做出了巨大的假设 - 例如,WebKit的JavaScript引擎使用JIT编译器 - 以及Java是否适合OP的用例。 – s4y 2010-10-15 18:53:50
Java不会*在浏览器中运行得更快,然后运行JavaScript。编写代码(对于Web应用程序)不仅速度慢而且笨拙,而且会严重限制与DOM的交互,除非整个页面是小程序。任何大型计算*都可以在Java中完成,但是我没有任何大的计算。我想平行对[我正在研究的宠物项目](http://joshuakehn.com/blog/static/sort.html)上的操作,其目标是不需要浏览器插件或其他外部库。 – 2010-10-15 19:08:55
@Sidnicious:是的,我发现它是JavaScript - > JavaScript,我为什么称它为“优化器”。我确实建议存在真正的编译器(可能在Chrome下);很高兴听到有另一个来自WebKit。话虽如此,Java的数据模型和访问恕我直言比真正的机器更接近于JavaScript,如果Java/JIT与Sun/IBM团队编译的实际相同的计算比Webkit或任何其他“编译”JavaScript运行速度慢,我会非常惊讶。 OP没有具体说明他在做什么,只是速度很慢,并且假设它是计算的默认值。 – 2010-10-15 20:14:30
英特尔想出一个开源项目代号为River Trail
退房http://www.theregister.co.uk/2011/09/17/intel_parallel_javascript/
Parallel.js有在Javascript多线程处理一个很好的API。它可以在网页浏览器和节点中运行。
- 1. 更换Javascript代码并运行它
- 2. 运行Javascript代码
- 3. 并行Erlang代码
- 4. OpenMP代码并行
- 5. 的JavaScript - 运行代码
- 6. Javascript执行代码顺序
- 7. JavaScript代码没有运行
- 8. javascript执行php代码
- 9. Javascript代码行为意外
- 10. Javascript代码执行延迟
- 11. javascript代码不能执行!
- 12. 模拟并行代码
- 13. 并行代码抛出OutOfRangeException
- 14. Windows Azure:并行的代码
- 15. 并行化matlab代码
- 16. 如何合并这两个javascript代码?
- 17. Appcelerator Titanium:在运行时下载并解释JavaScript代码?
- 18. 通过Javascript保留页面更新并运行PHP代码?
- 19. OpenMP的 - 运行并行代码
- 20. 并行代码执行python2.7 ndb
- 21. SQL Server代码不能并行执行
- 22. 并行代码比串行代码慢(值函数迭代示例)
- 23. javascript代码@
- 24. Javascript代码document.write
- 25. Sandboxing Javascript代码
- 26. Javascript代码
- 27. javascript代码getTimezoneOffset
- 28. factorial javascript代码?
- 29. javascript代码
- 30. 把javascript一行代码分解为可读代码
呃,如果你愿意牺牲兼容性,为什么你不能在你的程序中执行比JavaScript更快并且运行的程序呢? – 2010-10-15 16:51:35
@Ira:你有什么想法? – 2010-10-15 17:38:59
我开始回应您的评论,并决定将其作为答案。 – 2010-10-15 18:00:05