リメイクするオブジェクトの規模にもよりますが、今回の条件ではリメイクすると一回あたり50~80%ぐらい余分に時間がかかります。
検証用ソース
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<job> | |
<script> | |
gt=function(){return (new Date()).getTime()} | |
loop試験 = function(回数, fun){ | |
for(var s=gt(),i=0;i<回数;i++){ fun() } | |
return gt() - s | |
} | |
一つだけ変更=function(obj, prop, v){obj[prop]=v;return obj} | |
obj={a:1, b:2} | |
試験回数 = 10000000 | |
a = loop試験(試験回数, function(){c=一つだけ変更(obj, 'a', 3)}) | |
b = loop試験(試験回数, function(){c={a:3,b:2}}) | |
WScript.Echo([試験回数,a,b,(b-a)/試験回数*1000+'マイクロ秒',b/a].join('\n')) | |
</script> | |
</job> |
実行結果
win7

win10

一つだけと言わずいくつか変更できるようにすると、リメイクの方が速いようです。



そもそも速度を気にするなら普通に代入すれば、その方が断然速いようです。


0 件のコメント:
コメントを投稿