このベンチマークによれば、 http://jsperf.com/function-vs-function の作成関数は約1000倍高速に実行されます。あなたはこれをコメントできますか?javascript関数と新しい関数
答えて
f1
ですが、f2
ではありません。私。あなたの2番目のテストは何もしておらず、参照を探しています。- すべての作業は実際にテストのセットアップとして行われます。私はあなたが何をしたいと思います
は、これは実際にある:http://jsperf.com/function-vs-function/2 更新:考え直しで、あなたはこれを望んでいない可能性があります。しかし、あなたの2番目のテストは何もしていません。あなたはf2
後()
が欠落している;)
のでnew Function
が道遅くあることに加えて、関数の本体を維持することも困難である。)
をnew Function
-syntaxで、すべての機能JS-コンパイラの[...]
たびFunctionコンストラクタ が ソースコード、スクリプトを表す文字列に呼び出された:これは遅く、可能な場合は避けるべきである - 「evalの」関数本体文字列に開始する必要がありますエンジンは は、 ソースコードを実行可能コードに変換する機械を起動します。この は、通常はパフォーマンスのために高価です。 の場合、単純な関数呼び出しよりも簡単に100倍の高価な の例があります。 (マーク「Tarquin」ウィルトン・ジョーンズ)
あなたはStackOverflowの上の検索を使用した場合、あなたはthis questionウィッヒはそのことについては非常に良いと詳細な情報を与えることを発見したでしょう。
EDIT:マーティンのようなはが時々new Function
-constructorは素晴らしいことですが、以下のコメントの一つで述べています。いくつかの例を一覧表示する:
をしかし:ことはあなたはnew Function
を使用できる例は99%で、それは悪いですアイデア - つまり、ある種の「ダイナミックなバーチャル」を持たないような機能を定義するには、コードをスピードアップしてを避けるために、常に「通常の」関数構文を使用する必要がありますのような機能はnew Function
です。
しかし、新しい機能はさらに高速に実行されます!私は何を見ますか? – Dan
テストを実行すると、 'function(){}'の '' 10,841,858/fastest 'と' new Function'の '75,310/99%slower"が得られます。 – oezi
「新しい機能」を使用することは悪い習慣ではありません。必要なときに使用するのは素晴らしいツールです。必要がないときに使用する人は悪い練習です。 「新しい機能」を使用することは悪い習慣であると言うのは、運転中に他の人を走らせる人がいるため、「車を運転することは悪い習慣です」というようなものです。つまり、新しい機能は通常の機能よりも遅く、いつものようにストーリーの終わりになります。 –
- 1. Javascript新しい関数オブジェクトと関数のインスタンス化
- 2. 関数と新しい関数のJavaScriptの相違点
- 3. javascript関数を新しい関数に置き換えます。
- 4. JavaScriptの新しいオブジェクト内部関数
- 5. JavaScript関数Iは、JavaScriptの関数を定義している
- 6. 関数内のjavascript関数
- 7. javascriptとparseFloat関数?
- 8. javascript関数と(function(){...}());
- 9. JavaScriptの関数とオブジェクトと関数のないインスタンス化
- 10. javascriptの匿名関数が変数を更新しない
- 11. 素数で新しい配列を返す関数JavaScript
- 12. 引数としてのJavascript関数
- 13. javascript新しい関数で構築された関数は他の関数を呼び出せません
- 14. jquery関数と通常のjavascript関数の違いは?
- 15. javascriptのvar関数と関数の違いは何ですか?
- 16. Javascript:関数をパラメータとして呼び出す関数
- 17. compose関数とArray.reduceを使用したJavaScript関数のプログラミング
- 18. 「関数としてリターン」はjavascript関数は
- 19. JavaScriptの引数とテンポラリ変数関数
- 20. Javascript window.onload関数が新しいリンクファイルで起動しない
- 21. Javascript関数が新しいinnerHTMLで動作しない
- 22. javascriptと同じ関数名(入れ子関数と外部関数)
- 23. ポップアップモーダルのjavascript関数がItemCommand関数内で動作しない
- 24. 変数の関数の引数としてのJavaScript関数?ここ
- 25. javascript関数でchartjsを更新する
- 26. javascript関数オブジェクトメソッド
- 27. JavaScriptオブジェクトプッシュ()関数
- 28. javascriptイベントリスナー関数
- 29. JavaScript関数は
- 30. コールjavascript関数
欠陥のあるマイクロベンチマークに欠陥があります。それとは別に、あなたは主にここで 'console.log'のパフォーマンスをテストしています:) –
あなたはかなり正しいです!!!!! – Dan
私のコンピュータでは、+/- 3%以内で交互に実行されます。数回、私は両方のシナリオで全く同じ時間を得ました。 –