PCでGoogleパフォーマンスツールを正常に使用しています。ただし、aarch64 アーキテクチャ用にコンパイルおよびデプロイしているため、x86 で取得したプロファイリング結果が aarch64 と一致しない場合があります。
aarch64 デバイスで直接測定したかったのです。フラグを付けてコンパイルしRelWithDebInfo
、プロファイラーの実行時リンクを使用してコードを実行しましたLD_PRELOAD
。
私の最初の試みでは、ほとんどの場合、関数名の代わりにアドレスを取得しました:
828 2.1% 86.0% 828 2.1% 0x0000007fa4ededb8
827 2.1% 88.1% 827 2.1% 0x0000007fa4edcf5c
641 1.6% 89.8% 641 1.6% 0x0000007fa4edcf6c
600 1.5% 91.3% 600 1.5% 0x0000007fa4ededc4
413 1.1% 92.4% 413 1.1% 0x0000007fa4edec5c
ただし、一部の関数の実際の関数名を取得しました。
LD_PRELOAD
オプションはお勧めしません。-lprofiler
x86 PC で、次のようにしてGoogle パフォーマンス ツールをコンパイルした後、オプションでリンクしようとしました。
./configure --prefix [AARCH64_LIBPATH] --host aarch64-gnu-linux
make && sudo make install
コードを実行しようとするとmake
、次のエラーが発生しました。
skipping incompatible [AARCH64_LIBPATH]/libprofiler.so when searching for -lprofiler
[SOME_AARCH64_PATH]/ld: cannot find -lprofiler
Google perf ツールを使用して aarch64 デバイスの CPU をプロファイリングするにはどうすればよいですか?