1.時期尚早な最適化を避ける
主な格言:
- 不必要な最適化の名の下にパフォーマンスが犠牲になることがよくあります。
- 時期尚早な最適化は、プログラミングにおける「諸悪の根源」と考えられています。
推奨されるルールは次のとおりです:
- ルール 1: 最適化しない
- ルール 2: 必要性が明らかで避けられない場合にのみ最適化します。
2.明確で正しいコード アーキテクチャに重点を置く
- 最初の目標: パフォーマンスに焦点を当てる前に、適切に構造化された保守可能なプログラムを作成します。
- アーキテクチャの基盤が強固であれば、コードの整合性を損なうことなく、後から最適化を追加できます。
- カプセル化: 情報の隠蔽を使用して設計の選択肢を分離し、システム全体に影響を与えることなくローカルな変更と改善を促進します。
3.初期設計ではパフォーマンスを考慮しますが、時期尚早なコミットメントは避けてください
- 設計中は、特に次の場合に将来のパフォーマンスを制限する選択を避けてください。
- API: 不要なオブジェクトの作成など、重要なメソッドによってパフォーマンスが低下しないようにします。
- 永続的なデータ形式: 柔軟性と効率性を考慮したデータ形式を選択します。
- 非効率な API の例: java.awt.Component クラスの getSize メソッドは変更可能な Dimension オブジェクトを返すため、不必要な割り当てが必要となり、パフォーマンスに影響を与えます。
4.適切なツール (プロファイリングとベンチマーク) を使用してパフォーマンスを評価する
- プロファイラー: プロファイリング ツールを使用して、プログラムが最も時間を消費する場所を特定し、実際のボトルネックではない部分の最適化を回避します。
- ツール例: Java の詳細なパフォーマンスのマイクロベンチマークには、jmh (Java Microbenchmark Harness) が推奨されます。
- プロファイリングは、低レベルの改善に焦点を当てる前に、より効率的なアルゴリズムに置き換える必要がある非効率なアルゴリズム (例: 2 次) を特定するのに役立ちます。
5.さまざまな
における移植性とパフォーマンスの変動を考慮する
- 実装とハードウェア
- Java のパフォーマンスは、JVM バージョン、ハードウェア プラットフォーム、構成によって大きく異なります。
- パフォーマンスの一貫性を確保するには、すべてのターゲット プラットフォームにわたって最適化をチェックすることが重要です。
6.開発後の最適化プロセス
推奨される手順:
- 設計を完成させ、明確で簡潔なバージョンのプログラムを実装します。
- 全体的なパフォーマンスを評価します。必要に応じて、パフォーマンスに最も影響を与える領域を特定して最適化します。
- 効率的なアルゴリズムの選択を優先します。アルゴリズムの不適切な選択は、低レベルの最適化では解決されません。
- 各調整後にパフォーマンスを測定し、プラスの影響を確認します。
最終概要
- ベスト プラクティス: 一般に、優れた設計は効率的なパフォーマンスと互換性があるため、高品質のコードを書くことに重点を置きます。
- 継続的な評価: パフォーマンスに対する最適化の影響を常に測定します。
- 一般的な例: 不要なオブジェクトによって重要なメソッドが効率に影響を与える場合は、オブジェクトの代わりにプリミティブ値を返す不変型やメソッドなどの代替案を検討して、割り当てを削減し、プログラムをより高速かつ効率的にします。
以上が項目 最適化時の注意点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。