AMD CodeAnalystを使ってJavaプログラムをプロファイルする

AMD CodeAnalystは個人的にお気に入りのプロファイラである。最大の特徴はものすごく細かくプロファイルをとってくれるところだ。特に1行ごとの類型処理時間まで計ってくれるところはすごいと思う。C/C++のプログラムはVisualStudio拡張から簡単にプロファイルすることができるのだが、Javaは一工夫する必要があるらしい。手順は以下のとおりである。

  1. AMD CodeAnalystを普通にインストールする
  2. 対象のJavaプログラムを普通にコンパイルする
  3. "-XrunCAJVMTIA32"をつけて実行するバッチファイルを作る("java -XrunCAJVMTIA32 Main"等)
  4. バッチファイルに対してプロファイリングを行う

オプションをつけるところがミソらしい。これをつけないとHotSpotCompilerが働いてしまい、最初の1回分のプロファイルしか取れなくなってしまうそうだ。
とりあえず、AMD CodeAnalyst恐るべし。