第6章 MTA のパフォーマンスの最適化
MTA のパフォーマンスは、ハードウェア設定、アプリケーション内のファイルの数と種類、評価するアプリケーションのサイズと数、アプリケーションにソースコードとコンパイル済みコードのどちらが含まれているかなど、多くの要因に依存します。たとえば、10 MBを超えるファイルは、処理に時間がかかる場合があります。
一般に、MTA はクラスの逆コンパイルに約 40%、ルールの実行に 40% の時間を費やし、残りの時間は他のタスクの処理とレポートの生成に費やします。本セクションでは、MTA のパフォーマンスを改善するために実行できる内容を説明します。
6.1. パフォーマンスを最適化するためのヒント
6.1.1. アプリケーションとコマンドラインの推奨事項
ハードウェアをアップグレードする前に、これらの提案を試してください。
- 可能な場合は、アーカイブではなく、ソースコードに対して MTA を実行します。これにより、追加の JAR およびアーカイブをコンパイルする必要がなくなります。
-
RHAMT_HOME/bin/rhamt-cli
コマンドラインで--packages
引数を使用して、MTA が評価するパッケージのコンマ区切りリストを指定します。この引数を省略すると、MTA はすべてを逆コンパイルするため、パフォーマンスに大きな影響があります。 -
処理から除外できる
--excludeTags
引数を指定します。 - プロプライエタリーパッケージや含まれている依存関係などの不要なパッケージやファイルの逆コンパイルや解析は回避してください。詳細は、「 ファイルとパッケージを除外するための MTA の設定 」を参照してください。
- 大規模なアプリケーションを分析する際に ulimit を増やします。Red Hat Enterprise Linux でこれを行う方法は、「Red Hat Enterprise Linux でオープンファイルの数を制限する」を参照してください。
- ラップトップまたはデスクトップマシンよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
6.1.2. ハードウェアアップグレードの推奨事項
上記のアプリケーションとコマンドラインの提案がパフォーマンスを改善しない場合は、ハードウェアをアップグレードしないといけない場合があります。
- ラップトップまたはデスクトップよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
- 逆コンパイルが必要な非常に大規模なアプリケーションには、大容量のメモリーが必要です。8 GB の RAM が推奨されます。これにより、3 ~ 4 GB の RAM が JVM で使用できるようになります。
- シングルコアまたはデュアルコアからクアッドコアの CPU プロセッサーへのアップグレードにより、パフォーマンスが向上します。
- ディスク領域と断片化はパフォーマンスに影響を及ぼす可能性があります。高速ディスク、特にソリッドステートドライブ (SSD) で、4 GB を超える最適化されたディスク領域があると、パフォーマンスが向上します。