虚拟机,编译原理,应用框架

最新评论

Re:用nodejs实现支持pac脚本的代理 越笨越爱 2012-05-04 14:28  
想学下 node.js
Re:用nodejs实现支持pac脚本的代理 Jeffrey Zhao 2012-05-03 22:39  
挺好,不过关eval什么事情,你的nodejs代码还要关心体积? 还有不习惯写异步代码的话,用下Jscex吧。
Re:用nodejs实现支持pac脚本的代理 刺客之家 2012-05-03 22:01  
干货!支持node.js用于实战~
Re:javascript实现yield Lumj 2011-06-22 17:27  
[quote]文宇祥:@isuck<br/>yield在javascript中本来就是不必要的,因为javascript的函数是第一型的.<br/>这里用javascript实现yield纯粹为了好看和好玩,实际javascript是不会用到的.[/quote] 如果是对称coroutine呢?那可不一样了
你好啊 我正在写一个“JQuery” 有些问题想请教 麻烦联系下我 Q_125696864
re: javascript实现yield zzzz 2008-07-28 16:58  
赫赫,耍了很多花招啊
re: javascript实现yield 文宇祥 2008-07-27 20:07  
@isuck
yield在javascript中本来就是不必要的,因为javascript的函数是第一型的.
这里用javascript实现yield纯粹为了好看和好玩,实际javascript是不会用到的.
re: javascript实现yield 留恋星空 2008-07-27 19:55  
yield ??
re: javascript实现yield isuck 2008-07-27 18:12  
Array.prototype.forEach = function(fn){
for (var i = 0; i < this.length; i ++) {
fn(this[i])
}
};

var A = [1,2,3,4,5];
A.forEach(function(it){
alert(it)
});
re: javascript实现yield 文宇祥 2008-07-27 17:38  
eval(fn.toString()) IE返回undefined.所以改成eval('fn = ' + fn.toString());
IE的垃圾回收系统好像是使用的引用计数吧,我这里没有循环引用,根本就不会有内存溢出。
经过测试,IE的eval效率比FF高出不少,保守估计在10倍以上。

这是我使用的测试代码
function fn () {
    alert(
1);
    
// 中间有98行alert(1)
    alert(1);
}

for (var i=0; i<100000; i++ ) {
    eval(
'fn = ' + fn.toString());
}

alert(2);
 
IE只稍微假死两秒就完成了,FF一直死到出现SCRIPT造成浏览器过慢警告。我继续了3次都没有完成。
 
这个结论直接说明了,GC和引用计数之间的效率差距,这其中,FF的内存占用一直以MB级别提升,而IE几乎没有内存提升。因为GC的回收策略之一是内存不够用的时候回收内存垃圾。
 
我的测试是用Aptana完成的,可能FF3.0的情况会有所不同。
re: javascript实现yield gaga 2008-07-27 17:06  
eval('fn = ' + fn.toString());
想要IE内存溢出吗?

My Links

Blog Stats

News