gat*_*pia 9 javascript multithreading
我目前正在使用IFRAME来实现一个非常简单的多线程引擎.但是我的初步结果表明,在线程中运行比在单个线程中运行要慢.
我的测试是:
单线程
var start = new Date().getTime();
for (var i = 0; i < 300; i++) { /* Do costly processor operations */ }
debug('Took: ' + new Date().getTime() - start);
Run Code Online (Sandbox Code Playgroud)
多线程
var start = new Date().getTime();
// In thread 1
for (var i = 0; i < 100; i++) { /* Do costly processor operations */ }
// In thread 2
for (var i = 100; i < 200; i++) { /* Do costly processor operations */ }
// In thread 3
for (var i = 200; i < 300; i++) { /* Do costly processor operations */ }
// In a callback in the original FRAME (thread)
debug('Took: ' + new Date().getTime() - start);
Run Code Online (Sandbox Code Playgroud)
可以看出,我只是在IFRAME之间分配工作量(上面的注释代码只是为了更好地描述我在做什么,它不是工作代码).
所以我认为即使使用FRAME FireFox仍然只有一个JS引擎?这个假设是否正确?(使我的研究变得愚蠢),其他浏览器是否有所不同?
快速谷歌我得到了这篇文章:http://codediaries.blogspot.com/2009/12/real-javascript-multithreading-using.html
然而,这里实现的性能改进很可能只是执行并行的http请求而不是处理能力.
感谢您的见解.
圭多
不,Javascript一般不支持多线程。大多数解释器没有任何内置的多线程功能(就像 PHP 一样),可能是出于可移植性的原因。
然而,由于Rhino引擎完全用 Java 编写,您也许可以利用 Thread 类,但这只有在您执行服务器端 Javascript 时才可行。
| 归档时间: |
|
| 查看次数: |
2428 次 |
| 最近记录: |