メンバー変数を直接返すのではなく、Collections.unmodifiableList()を返すことをお勧めしました。私の同僚は、パフォーマンスの低下が懸念されています。もちろん、最良の答えはそれを測定することです。私たちはそれを行うかもしれませんが、私はあなたの経験や参考文献、プロまたは詐欺を知りたいと思います。Collections.unmodifiableListには何らかのパフォーマンスリスクがありますか?
答えて
号には、少なくとも、OpenJDK implementationは文字通りUnsupportedOperationException
sの修正方法は、残りはちょうど
コンパイラ
VM(とそうであっても、1つのレベルのことで離れて最適化されるはずです間接のいずれかのレベルを、追加し、「置き換え」間接指導は費用がかからない)。
変更できないリストを返却したい場合は、パフォーマンスの影響は正確性の損失と比較して薄くなりますが、パフォーマンスだけでは避けられません。あなたが必要です。
Javaコンパイラではなく、VM(Hotspot)によって最適化されています。 –
実装を見ると、Collections.unmodifiableは実際のコレクションを囲む単なるラッパーであり、転送する代わりにすべての削除/追加メソッドの例外をスローします。したがって、パフォーマンスヒットはありません(転送コールはJITによってインライン化されます)。
だから、元のほとんどの時間ではなく、変更不可能なコレクションを返すべきです。これはずっと優れたコーディング方法です。
JITが関数をインライン化する場合、そうでない場合は、[はい、わずかパフォーマンスヒットが発生しますが、おそらくないあなたが非常にタイトなループを持っている場合を除き、それをに気づくことができるようになります。
デバッグ用にコンパイルしない限り、関数をインライン化する可能性があります。
- 1. SEAMには何らかの欠点がありますか?
- 2. Zendには何らかの音訳がありますか?
- 3. slideToggleには何らかのバグがありますか?
- 4. Browserifyには何らかの制限がありますか?
- 5. Facebookには何がありますか?
- 6. メソッドシグネチャには何がありますか
- 7. argvには何がありますか?
- 8. PHPには何がありますか?
- 9. PHPには何がありますか?
- 10. Clojureには何がありますか?
- 11. ipaファイルには何らかの制限があります
- 12. Ndkには何らかのAPIがあります
- 13. SAP OpenSQLに何らかの「リバースワイルドカード」がありますか?
- 14. Pythonにはモジュールがありますが、C++には何がありますか?
- 15. Object.freeze関数に何らかの理由はありますか?
- 16. このOpenMPの使用には何らかの問題がありますか?
- 17. JSフレームワークは何がありますか?
- 18. VMWare VMotionとVMFSの間には何らかの関係がありますか?
- 19. javaのPreparedStatement.addBatchには何らかの制限がありますか?
- 20. パッケージ保護クラスのパブリックメソッドには何らかの理由がありますか?
- 21. 何がSystem.out.println()にありますか
- 22. >>はCに何らかの意味がありますか?
- 23. getRequestDispatcher()、getOutputStream()およびgetWriter()には何らかの関係がありますか?
- 24. 異なる行末には何らかの理由がありますか?
- 25. このシングルトンパターンには何か問題がありますか?
- 26. ジャクソン - @classのキーがあり、その値はクラスのフルパスです - 何らかの理由がありますか?
- 27. 何かありますか?
- 28. Mono.CSharp.dllに問題がありますか何かがありません
- 29. アーキテクチャ上のガイドラインはありますか?もしそうなら、彼らに何があるべきですか?
- 30. スフィンクスには何かがありますか?
これは私を夢中にさせる、実証されていない、成熟したマイクロ最適化の一種です。同僚にこれらの回答とソースコード自体を指摘してください。 – duffymo
ありがとう、Duffy;私はそれをやる。私はむしろ時間をかけて測定します(それでもなお可能です)が、これだけではなく、私にとってだけでなく、ここで明確な答えを得ることは良いことです。私は、これらの行に沿った質問が既に尋ねられ、ここでうまく答えられていると思った。私がしなかったとき - よく、私は尋ねた。 –
@duffymoは完全に合意した。 @カルManasterあなたの同僚に尋ねる必要がある質問は、 'パフォーマンスは何に比べて打撃ですか?'あなたが望むなら、あなたはゼロ時間で間違った答えを得ることができます。そうではありません。 – EJP