我一直在我的电脑上成功使用谷歌性能工具。但是,我正在为 aarch64 架构进行编译和部署,而我为 x86 获得的分析结果可能与 aarch64 不匹配。
我想直接测量 aarch64 设备上的东西。我用标志编译RelWithDebInfo
,我用 profiler 的运行时链接运行我的代码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
不推荐选项。在我的 x86 电脑上,我在编译谷歌性能工具后尝试链接-lprofiler
选项:
./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?