perf - ljatsh/Test GitHub Wiki
- 2019-04-29: initial version
-
运行 借助工具脚本app_profiler.py还是很简单地能够运行起来
python app_profiler.py -p cn.vstudio.herox -a org.cocos2dx.lua.AppActivity -r '-e task-clock -g -f 1000 --duration 180'
期初在模拟器上跑,提示错误
DEBUG:root:run adb cmd: ['/Users/longjun/Library/Android/sdk/ndk-bundle/../platform-tools/adb', 'shell', '/data/local/tmp/simpleperf', 'record', '-e task-clock -g -f 1000 --duration 30', '-o', '/data/local/tmp/perf.data', '--app', 'cn.vstudio.herox'] simpleperf E event_selection_set.cpp:363] dwarf callchain sampling is not supported on this device. DEBUG:root:profiling result [False] Failed to record profiling data.
检查日志,发现profiler会尝试以root身份运行,于是换用支持root的镜像,问题依旧。这个问题暂时没能克服。 本以为未经root的真机设备不能运行,尝试下来,居然一帆风顺。 可以参考这个加速运行速度
-
分析结果
python report.py -g --sort dso python report.py -g --gui --sort symbol --dsos /data/app/cn.vstudio.herox-Py_R4PH1Gzi6SHlfQHtq7g==/lib/arm/libherox.so
Cmdline: /data/data/cn.vstudio.herox/simpleperf record --in-app --tracepoint-events /data/local/tmp/tracepoint_events -e task-clock -g -f 1000 --duration 180 -o perf.data --app cn.vstudio.herox Arch: arm64 Event: task-clock (type 1, config 1) Samples: 108605 Error Callchains: 22375, 20.602182% Event count: 135756250000 Children Self Shared Object 48.79% 40.77% /data/app/cn.vstudio.herox-FLYwmvLjbolrqMLqUqIC-A==/lib/arm/libherox.so 34.19% 26.90% /vendor/lib/egl/libGLESv2_adreno.so 31.80% 0.01% /data/app/cn.vstudio.herox-FLYwmvLjbolrqMLqUqIC-A==/oat/arm/base.odex 30.80% 0.28% //anon 29.50% 7.12% /system/lib/libc.so Cmdline: /data/data/cn.vstudio.herox/simpleperf record --in-app --tracepoint-events /data/local/tmp/tracepoint_events -e task-clock -g -f 1000 --duration 180 -o perf.data --app cn.vstudio.herox Arch: arm64 Event: task-clock (type 1, config 1) Samples: 44277 Error Callchains: 21, 0.047429% Event count: 55346250000 Children Self Symbol 68.37% 0.04% cocos2d::Director::mainLoop() [skipped in brief callgraph mode] 68.18% 0.07% cocos2d::Director::drawScene() [skipped in brief callgraph mode] 45.91% 0.02% cocos2d::Scene::render(cocos2d::Renderer*, cocos2d::Mat4 const&, cocos2d::Mat4 const*) [skipped in brief callgraph mode] 45.78% 0.05% cocos2d::Scene::render(cocos2d::Renderer*, cocos2d::Mat4 const*, cocos2d::Mat4 const*, unsigned int) [skipped in brief callgraph mode] 32.01% 5.74% cocos2d::Node::visit(cocos2d::Renderer*, cocos2d::Mat4 const&, unsigned int) ...
提供脚本运行并自动汇报结果 https://blog.csdn.net/tq08g2z/article/details/77311712