ベンチマーク:
不変量:
var f = function() { };
var g = function() { return this; }
テスト:
予想される速度の順に以下
new f;
g.call(Object.create(Object.prototype));
new (function() { })
(function() { return this; }).call(Object.create(Object.prototype));
実際の速度:
new f;
g.call(Object.create(Object.prototype));
(function() { return this; }).call(Object.create(Object.prototype));
new (function() { })
質問:
- インライン匿名関数
f
を交換する場合。(テスト4.)テストが遅いg
のはなぜですか?new
アップデート:
インライン化されている場合、具体的に何が原因でnew
が遅くなります。f
g
ES5仕様への参照、またはJagerMonkeyまたはV8ソースコードへの参照に興味があります。(JSCとCarakanのソースコードも自由にリンクしてください。ああ、IEチームは必要に応じてChakraソースをリークする可能性があります)。
JSエンジンのソースをリンクする場合は、それを説明してください。