ベンチマーク:
不変量:
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が遅くなります。fg
ES5仕様への参照、またはJagerMonkeyまたはV8ソースコードへの参照に興味があります。(JSCとCarakanのソースコードも自由にリンクしてください。ああ、IEチームは必要に応じてChakraソースをリークする可能性があります)。
JSエンジンのソースをリンクする場合は、それを説明してください。