純粋な順次アプリケーションの場合、プロファイリング レポートを確認すると、簡単にパフォーマンス ボトルネックを確認できますが、実際によく使用されるアプリケーションはマルチスレッドなので、パフォーマンス ボトルネックを確認するには、並列処理の影響を考慮することが重要となります。
次の図に、2 つの並列パスを使用したアプリケーションのパフォーマンス プロファイルを示します。各矩形の幅は、各関数のパフォーマンスに比例します。
図 1. 2 つの並列パスを使用したアプリケーション
上の図の例では、2 つのパスのうちの 1 つだけをアクセラレーションしても、アプリケーション全体のパフォーマンスは改善しません。パス A および B は再合流するので、これらの終了は互いに依存しています。同様に、A2 を 100 倍にアクセラレーションしたとしても、上のパスのパフォーマンスにはそれほど影響しません。このため、この例のパフォーマンス ボトルネックは関数 A1、B1、B2、および B3 です。
アクセラレーションの候補を探す場合は、個別の関数のパフォーマンスだけでなく、アプリケーション全体のパフォーマンスを考慮してください。