作者tomin (弱水三千 只取一瓢饮)
看板Ajax
标题javascript benchmark (效能测试 on js function creation)
时间Sun Mar 11 20:12:45 2012
※ [本文转录自 Web_Design 看板 #1FN9KdVm ]
作者: tomin (弱水三千 只取一瓢饮) 看板: Web_Design
标题: Re: javascript benchmark (js效能测试 on creating function)
时间: Sun Mar 11 20:05:57 2012
※ 引述《tonytonyjan (南洋大兜虫)》之铭言:
: 想请问这两个写法对於记忆体或效能影响什麽差别吗?
: // Example 1
: for(i=0;i<1000000000;i++){
: x = function(){alert()} // 是否会产生一堆的 function object?
: }
: // Example 2
: function f(){alert()}
: for(i=0;i<1000000000;i++){
: x = f // 这个我确定只会有一个 function
: }
记忆体我不知道 不过效能我测出来了
前者比较快 比後者快2.5倍
测试来源:
http://jsperf.com/inital-function
http://jsfiddle.net/xKvu2/
原因我不清楚 也许将一个变数绑定并reference至一个function很花成本?
另外我有个问题 後者有function call好像特别难测?
像以下这两个版本 都无法正确测试後者实际执行的时间
http://jsfiddle.net/GFue7/
http://jsfiddle.net/hzm97/
我想将测试code写得通用、简洁、漂亮一点 以後可当lib用
或是有那个lib还不错用?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.24.41.89
※ 编辑: tomin 来自: 114.24.41.89 (03/11 20:08)
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: tomin (114.24.41.89), 时间: 03/11/2012 20:12:45
1F:→ TonyQ:我chrome 跑起来是後者比前者快很多耶 03/12 00:20
2F:→ TonyQ:你是不是看错了?可以提供一下你测的浏览器跟数据吗? 03/12 00:21
3F:→ TonyQ:然後後者我觉得只是你把他想难了... 03/12 00:29
4F:→ Crow22312:GFue7 这个的零数量不对, 否则在 chrome 中测的差不多 03/12 09:34
5F:→ Crow22312:三者在 chrome 中都是 x = f 的版本快 03/12 09:35