perf 报告函数名称和额外字符
perf report function names and extra characters
我使用 perf
分析了一个应用程序,但我很困惑为什么报告中的函数名称如此混乱。例如,这里是 perf report
的输出:
# Overhead Command Shared Object
# ........ ........... ................. .................................................................................................................................................................................................
#
38.98% hello_sp_tp libc-2.19.so [.] __memcpy_sse2_unaligned
|
--- __memcpy_sse2_unaligned
|
|--21.70%-- _ZN5nupic10algorithms6Cells46CStateaSERKS2_.local.1629
|
--17.28%-- _ZN5nupic10algorithms6Cells46Cells420updateInferenceStateERKSt6vectorIjSaIjEE
_ZN5nupic10algorithms6Cells46Cells47computeEPfS3_bb
例如,我认识名字 nupic.algorithms.Cells4.updateInferenceState()
,但我不确定填充名字的所有其他字符的含义。
什么是_ZN5
?这个函数名末尾的 IjSaIjEE
是什么?这些是什么意思?他们来自哪里?
这些(C++ 函数)名称被破坏了。查看 name mangling 了解语法细节。这允许对复杂的 C++ 命名进行编码。
关于您的 perf 报告,有一些选项可以要求 demangling:--demangle
理论上默认设置,但实际实施可能取决于 perf 版本或您的 CPU 架构。
perf 可能是在您的系统上不支持 demangling 的情况下构建的。
如果您的系统是Ubuntu,请看这里:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1396654
和此处提供的解决方法:
我使用 perf
分析了一个应用程序,但我很困惑为什么报告中的函数名称如此混乱。例如,这里是 perf report
的输出:
# Overhead Command Shared Object
# ........ ........... ................. .................................................................................................................................................................................................
#
38.98% hello_sp_tp libc-2.19.so [.] __memcpy_sse2_unaligned
|
--- __memcpy_sse2_unaligned
|
|--21.70%-- _ZN5nupic10algorithms6Cells46CStateaSERKS2_.local.1629
|
--17.28%-- _ZN5nupic10algorithms6Cells46Cells420updateInferenceStateERKSt6vectorIjSaIjEE
_ZN5nupic10algorithms6Cells46Cells47computeEPfS3_bb
例如,我认识名字 nupic.algorithms.Cells4.updateInferenceState()
,但我不确定填充名字的所有其他字符的含义。
什么是_ZN5
?这个函数名末尾的 IjSaIjEE
是什么?这些是什么意思?他们来自哪里?
这些(C++ 函数)名称被破坏了。查看 name mangling 了解语法细节。这允许对复杂的 C++ 命名进行编码。
关于您的 perf 报告,有一些选项可以要求 demangling:--demangle
理论上默认设置,但实际实施可能取决于 perf 版本或您的 CPU 架构。
perf 可能是在您的系统上不支持 demangling 的情况下构建的。
如果您的系统是Ubuntu,请看这里:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1396654
和此处提供的解决方法: