複数のスレッドプログラムで関数を使用する方法や静的メソッドを使用する方が速いのはなぜですかより速い理由を説明してください。関数と静的メソッドとの比較
答えて
"純粋な関数"がマルチスレッド化に適していると聞いたことがあります。純粋な関数は、Javaで静的メソッドとして実装することもできますが、インスタンスメソッドとして実装することもできます。要点は、マルチスレッドの場合、変更可能なグローバル変数を持たない方が良いことです。ですから、あなたが不変オブジェクトを持っていれば、それは静的メソッドが純粋な関数を実装しているのと同じくらい良いことです。
2つのアプローチ(私が真剣に疑う)の間に賢明な違いがあっても、これに基づいてプログラムを設計するべきではありません。優れた性能を達成するには、良いデザインを(ほとんど)犠牲にするべきではありません。あなたが多くを得ることはありませんが、あなたは多くを失うからです。
+1:小さな違いがあっても、JVMが改善するにつれてその違いが変化することに失望するかもしれません。これは、設計に合わせて設計を大幅に変更し、実際に遅くなっていることが分かり、失望する可能性があることを意味します。シンプルで明快なものをつけて、ナノ秒ごとに心配しないでください –
完全に同意します。決定静的対インスタンスは、このメソッドが論理的に*特定のオブジェクトインスタンスまたは特定のクラスのすべてのオブジェクトに属しているかどうかに基づいて行われる必要があります。小さなパフォーマンス上のペナルティがあるかもしれません(パブリックの非最終メソッドは仮想呼び出しです)。通常は無視できますが、JVMはスマートになり、より効率的に処理されます。このような違いがアプリケーションにとって本当に重要なのであれば、Javaはおそらく貧しい選択です。 –
- 1. 関数内静的変数と静的クラス変数の比較
- 2. シングルトンクラスと静的メソッドとフィールドの比較?
- 3. オブジェクトと静的位置のヒープ比較
- 4. "Do-er"クラスと静的ユーティリティメソッドの比較
- 5. 静的でない関数のstaticとnon-staticの整数の比較
- 6. 関数と静的メソッドの使用
- 7. 低レベルの違い:静的メソッドを使用した非静的クラスと静的メソッドを使用した静的クラスとの比較
- 8. 静的メソッドと静的変数のjava
- 9. 静的コンテキストからの非静的メソッド[クラスインスタンスの2つのセットの比較]
- 10. 定数メンバーと非静的データメンバーを比較する
- 11. Python辞書キー(クラスオブジェクト)複数の比較関数との比較
- 12. ストリーミングと静的ファイルのリンクとの比較
- 13. Pythonモジュール - メソッドと変数の比較
- 14. 静的メソッドと変数
- 15. 静的クラスと静的メソッド
- 16. Javaでメソッドを呼び出す3つの方法 - 静的と非静的の比較
- 17. 関数をPythonのバインドされたメソッドと比較する3
- 18. 関数fminuncとロジスティック回帰のBFGSメソッドを比較する
- 19. IF、AND、OR関数の比較と結果の比較Excelの
- 20. 静的メソッドと非静的メソッド
- 21. C++の静的およびグローバルテーブルとの値の比較
- 22. データベースからの静的データの取得とファイルシステムの比較
- 23. Pythonのフィルタ()関数とリスト比較
- 24. React performance:bindと匿名関数の比較
- 25. 関数テンプレートと自動キーワードの比較
- 26. 目的関数のunichar比較
- 27. タイムゾーン計算。 PHP関数とMySQL関数との比較
- 28. 静的なHTML /画像のパフォーマンスベンチマーク:lighthttpdとAmazon S3の比較?
- 29. スレッドセーフと静的関数
- 30. 静的メンバー関数とスレッドセーフ
"関数"は実際にJavaで使用される用語ではないので、あなたの質問を明確にする必要があります。理想的には、両方のアプローチを示す例を挙げてください。 –
スタティックと非スタティックの両方の方法が適しています。 –
彼は方法ではなく機能を意味すると思う。 –