Linux/Android 性能优化工具 perf

简介: /***************************************************************************** * Linux/Android 性能优化工具 perf * 说明: * 之前一直在找Android上的性能优化工具,但是一直不知道应该找哪方面的关键字, * 今天在看Android源代码目录的时候看到linux-tools-perf,查了点相关资料,最后 * 发现这好像就是我一直在找的查看系统性能的工具,目前没有验证任何东西,先记录 * 下这些东西。
/*****************************************************************************
 *                     Linux/Android 性能优化工具 perf
 * 说明:
 *     之前一直在找Android上的性能优化工具,但是一直不知道应该找哪方面的关键字,
 * 今天在看Android源代码目录的时候看到linux-tools-perf,查了点相关资料,最后
 * 发现这好像就是我一直在找的查看系统性能的工具,目前没有验证任何东西,先记录
 * 下这些东西。
 *
 *                                          2016-06-06 深圳 南山平山村 曾剑锋
 ****************************************************************************/

一、参考文章:
    Linux 性能优化工具 perf top
        http://www.68idc.cn/help/server/linux/20151119591702.html 
    Perf -- Linux下的系统性能调优工具,第 2 部分
        http://www.ibm.com/developerworks/cn/linux/l-cn-perf2/index.html

二、Android perf源码目录情况:
    myzr@myzr:~/myandroid/external$ ls -al linux-tools-perf 
    total 564
    drwxrwxr-x  12 myzr myzr  4096 Jun  6 11:05 .
    drwxrwxr-x 171 myzr myzr  4096 Mar 31 10:32 ..
    -rw-rw-r--   1 myzr myzr  6083 Apr 11  2014 Android.mk
    -rw-rw-r--   1 myzr myzr 42956 Apr 11  2014 android.patch
    drwxrwxr-x   8 myzr myzr  4096 Apr 30  2013 arch
    drwxrwxr-x   2 myzr myzr  4096 Apr 11  2014 bench
    -rw-rw-r--   1 myzr myzr  7607 Apr 11  2014 builtin-annotate.c
    -rw-rw-r--   1 myzr myzr  4952 Apr 11  2014 builtin-bench.c
    -rw-rw-r--   1 myzr myzr  3225 Apr 11  2014 builtin-buildid-cache.c
    -rw-rw-r--   1 myzr myzr  1508 Apr 11  2014 builtin-buildid-list.c
    -rw-rw-r--   1 myzr myzr  6473 Apr 11  2014 builtin-diff.c
    -rw-rw-r--   1 myzr myzr  1249 Apr 11  2014 builtin-evlist.c
    -rw-rw-r--   1 myzr myzr  2045 Apr 11  2014 builtin.h
    -rw-rw-r--   1 myzr myzr 11439 Apr 11  2014 builtin-help.c
    -rw-rw-r--   1 myzr myzr  5702 Apr 11  2014 builtin-inject.c
    -rw-rw-r--   1 myzr myzr 17676 Apr 11  2014 builtin-kmem.c
    -rw-rw-r--   1 myzr myzr  3746 Apr 11  2014 builtin-kvm.c
    -rw-rw-r--   1 myzr myzr  1387 Apr 11  2014 builtin-list.c
    -rw-rw-r--   1 myzr myzr 23756 Apr 11  2014 builtin-lock.c
    -rw-rw-r--   1 myzr myzr 11159 Apr 11  2014 builtin-probe.c
    -rw-rw-r--   1 myzr myzr 23259 Apr 11  2014 builtin-record.c
    -rw-rw-r--   1 myzr myzr 14754 Apr 11  2014 builtin-report.c
    -rw-rw-r--   1 myzr myzr 45433 Apr 11  2014 builtin-sched.c
    -rw-rw-r--   1 myzr myzr 28629 Apr 11  2014 builtin-script.c
    -rw-rw-r--   1 myzr myzr 33129 Apr 11  2014 builtin-stat.c
    -rw-rw-r--   1 myzr myzr 16940 Apr 11  2014 builtin-test.c
    -rw-rw-r--   1 myzr myzr 24003 Apr 11  2014 builtin-timechart.c
    -rw-rw-r--   1 myzr myzr 29062 Apr 11  2014 builtin-top.c
    -rw-rw-r--   1 myzr myzr  2599 Apr 11  2014 CleanSpec.mk
    -rw-rw-r--   1 myzr myzr   814 Apr 11  2014 command-list.txt
    -rw-rw-r--   1 myzr myzr  1536 Apr 11  2014 common-cmds.h
    drwxrwxr-x   2 myzr myzr  4096 Apr 11  2014 config
    -rw-rw-r--   1 myzr myzr   603 Apr 11  2014 CREDITS
    -rw-rw-r--   1 myzr myzr 17723 Apr 11  2014 design.txt
    drwxrwxr-x   2 myzr myzr  4096 Apr 11  2014 Documentation
    drwxrwxr-x   2 myzr myzr  4096 Apr 11  2014 .git
    drwxrwxr-x   2 myzr myzr  4096 Apr 11  2014 host-darwin-fixup
    drwxrwxr-x   2 myzr myzr  4096 Apr 11  2014 host-linux-fixup
    -rw-rw-r--   1 myzr myzr 29895 Apr 11  2014 Makefile
    -rw-rw-r--   1 myzr myzr   288 Apr 11  2014 MANIFEST
    -rw-rw-r--   1 myzr myzr    29 Apr 11  2014 mm.c
    -rw-rw-r--   1 myzr myzr  1229 Apr 11  2014 perf-archive.sh
    -rw-rw-r--   1 myzr myzr 12418 Apr 11  2014 perf.c
    -rw-rw-r--   1 myzr myzr   536 Apr 11  2014 PERF-CFLAGS
    -rw-rw-r--   1 myzr myzr  4880 Apr 11  2014 perf.h
    -rw-rw-r--   1 myzr myzr    21 Apr 11  2014 PERF-VERSION-FILE
    drwxrwxr-x   2 myzr myzr  4096 Apr 11  2014 python
    drwxrwxr-x   4 myzr myzr  4096 Apr 30  2013 scripts
    drwxrwxr-x   6 myzr myzr  4096 Apr 11  2014 util
    myzr@myzr:~/myandroid/external$ 

三、Android perf
    root@android:/ # perf                                                          

     usage: perf [--version] [--help] COMMAND [ARGS]

     The most commonly used perf commands are:
       annotate        Read perf.data (created by perf record) and display annotated code
       archive         Create archive with object files with build-ids found in perf.data file
       bench           General framework for benchmark suites
       buildid-cache   Manage build-id cache.
       buildid-list    List the buildids in a perf.data file
       diff            Read two perf.data files and display the differential profile
       evlist          List the event names in a perf.data file
       inject          Filter to augment the events stream with additional information
       kmem            Tool to trace/measure kernel memory(slab) properties
       kvm             Tool to trace/measure kvm guest os
       list            List all symbolic event types
       lock            Analyze lock events
       probe           Define new dynamic tracepoints
       record          Run a command and record its profile into perf.data
       report          Read perf.data (created by perf record) and display the profile
       sched           Tool to trace/measure scheduler properties (latencies)
       script          Read perf.data (created by perf record) and display trace output
       stat            Run a command and gather performance counter statistics
       test            Runs sanity tests.
       timechart       Tool to visualize total system behavior during a workload
       top             System profiling tool.

     See 'perf help COMMAND' for more information on a specific command.

    root@android:/ # perf --version                                            
    perf version perf.3.0.8_android
    root@android:/ # 

 

目录
相关文章
|
2月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
55 5
Linux系统之安装Ward服务器监控工具
|
18天前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。
|
2月前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
38 2
Linux系统之安装cook菜谱工具
|
21天前
|
Android开发 开发者
Android性能优化——内存管理的艺术
Android性能优化——内存管理的艺术
|
26天前
|
Android开发 开发者 UED
安卓开发中自定义View的实现与性能优化
【10月更文挑战第28天】在安卓开发领域,自定义View是提升应用界面独特性和用户体验的重要手段。本文将深入探讨如何高效地创建和管理自定义View,以及如何通过代码和性能调优来确保流畅的交互体验。我们将一起学习自定义View的生命周期、绘图基础和事件处理,进而探索内存和布局优化技巧,最终实现既美观又高效的安卓界面。
32 5
|
26天前
|
缓存 数据库 Android开发
安卓开发中的性能优化技巧
【10月更文挑战第29天】在移动应用的海洋中,性能是船只能否破浪前行的关键。本文将深入探讨安卓开发中的性能优化策略,从代码层面到系统层面,揭示如何让应用运行得更快、更流畅。我们将以实际案例和最佳实践为灯塔,引领开发者避开性能瓶颈的暗礁。
48 3
|
29天前
|
缓存 监控 Linux
Linux性能分析利器:全面掌握perf工具
【10月更文挑战第18天】 在Linux系统中,性能分析是确保软件运行效率的关键步骤。`perf`工具,作为Linux内核自带的性能分析工具,为开发者提供了强大的性能监控和分析能力。本文将全面介绍`perf`工具的使用,帮助你成为性能优化的高手。
92 1
|
29天前
|
缓存 监控 Linux
掌握Linux性能分析:深入探索perf工具
【10月更文挑战第26天】
30 1
|
29天前
|
存储 缓存 监控
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
97 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库