设置 ftrace

echo function_graph > current_tracerecho funcgraph-cpu > trace_optionsecho funcgraph-proc > trace_optionsecho funcgraph-abstime > trace_optionsecho nofuncgraph-overhead > trace_options

准备工作

umount tmpmount -o rw,remount /mkdir /tmpmount -t tmpfs none /tmpecho 0 > tracing_enabled

执行 profiling

cat trace_pipe > /tmp/trace.out &echo 1 > tracing_enabledecho 0 > tracing_enabled

程序 3X 时间,大量 lost events,需减少目标函数

echo 'sys_*' > set_ftrace_filter # covers sys_futex (do_futex, futex_wait)echo '*page*' >> set_ftrace_filterecho 'sleep_on_*' >> set_ftrace_filterecho '*wait*' >> set_ftrace_filterecho '__schedule' >> set_ftrace_filter  # covers schedule, schedule_timeout, poll_schedule_timeout, schedule_hrtimeout_rangeecho 'do_fork' >> set_ftrace_filter; echo '!sys_clone' >> set_ftrace_filter # covers kernel_threadecho 'copy_process' >> set_ftrace_filterecho 'binder_thread_*' >> set_ftrace_filter # binder_thread_read/writeecho 'do_exit' >> set_ftrace_filterecho 'do_IRQ' >> set_ftrace_filterecho 'do_IPI' >> set_ftrace_filterecho 'do_softirq' >> set_ftrace_filterecho 'flush_dcache_page' >> set_ftrace_filter # covers __flush_dcache_pageecho 'subsystem_flush_mapped_mem_cache' >> set_ftrace_filterecho '__atomic_notifier_call_chain' >> set_ftrace_filter # covers atomic_notifier_call_chainecho 'down_interruptable' >> set_ftrace_filterecho 'do_local_timer' >> set_ftrace_filterecho 'load_balance' >> set_ftrace_filterecho 'rebalance_domains' >> set_ftrace_filter # covers run_rebalance_domainsecho 'sched_move_task' >> set_ftrace_filterecho '__alloc_pages_nodemask' >> set_ftrace_filter # covers page allocation, __rmqueueecho '__free_pages' >> set_ftrace_filter # covers __free_page, __free_pages_okecho 'mali_mmap' >> set_ftrace_filterecho 'split_vma' >> set_ftrace_filterecho 'process_one_work' >> set_ftrace_filter # workersecho 'do_signal*' >> set_ftrace_filterecho 'mmc_*' >> set_ftrace_filterecho 'generic_make_request' >> set_ftrace_filter # main for block layerecho 'vfs_fsync_range' >> set_ftrace_filter # covers vfs_fsync, do_fsyncecho 'shrink_*' >> set_ftrace_filter # covers try_to_free_pagesecho 'kswapd' >> set_ftrace_filterecho 'input_event' >> set_ftrace_filter
                                                                                             

更多相关文章

  1. C语言函数以及函数的使用
  2. android NDK JNI设置自己的log输出函数
  3. Android build/envsetup.sh 脚本分析(lunch函数)
  4. Android Hook学习之ptrace函数的使用
  5. Android中回调函数的理解---本人Android纯新手
  6. 【Android NDK 开发】Ubuntu 函数库交叉编译 ( Android 动态库交
  7. cocos2dx打包Android出现“未指定Android目标平台版本”问题
  8. Android学习札记12:对Parcelable中describeContents()函数的一种
  9. android常用函数参数补充

随机推荐

  1. Android学习笔记——设置EditText只输入
  2. 常用的android studio插件
  3. Android手动显示和隐藏软键盘方法总结
  4. Android(安卓)Studio更新SDK后出现的问题
  5. Android(安卓)获取Inflate得到的view的宽
  6. Android(安卓)启动分析 --- init.c (syst
  7. Android(安卓)3D模型展示
  8. 【Android之OkHttp介绍】
  9. USB 相关笔记
  10. Unity 打包 Android(安卓)API 26