美文网首页
工具笔记 | 性能测试及性能分析工具

工具笔记 | 性能测试及性能分析工具

作者: 力卉编程 | 来源:发表于2019-12-29 22:05 被阅读0次

    性能标准:内存占用、cpu占用、流量耗用、电池温度、流畅度等等。
    性能测试,腾讯GT- https://github.com/TencentOpen/GT , https://github.com/Tencent/GT

    Android性能分析工具Systrace和TraceView的使用- CSD:xiyangyang8/article/details/50545707

    -- TraceView

    在开始调试的地方,如Activity的onCreate函数,
    添加Debug.startMethodTracing("tracefilename");
    结束调试的地方,如Activity的onStop函数,
    添加Debug.stopMethodTracing();
    通过Systrace分析数据,可以大体上发现是否存在性能问题。但如果要知道具体情况,就需要用到另外一个工具

    TraceView是android的一个可视化的调试工具。借助它,你可以具体了解你的代码在运行时的性能表现。它能帮你更好了解到代码运行过程的效率,进而改善代码,提高你应用的体验。 同時TraceView是Android平台特有的数据采集和分析工具,它主要用于分析Android中应用程序的hotspot。让我们了解我们要跟踪的程序的性能,并且能具体到method

    Traceview的作用:

    (1). 查看跟踪代码的执行时间,分析哪些是耗时操作。
    (2). 可以用于跟踪方法的调用,尤其是Android Framework层的方法调用关系。
    (3). 可以方便的查看线程的执行情况,某个方法执行时间、调用次数、在总体中的占比等,从而定位性能点。

    -- Android性能分析工具Systrace和TraceView的使用

    Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android关键子系统(如Surfaceflinger、WindowManagerService等Framework部分关键模块、服务)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。

    Systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。在Android平台中,它主要由3部分组成:

    • 内核部分:Systrace利用了Linux Kernel中的ftrace功能。所以,如果要使用Systrace的话,必须开启kernel中和ftrace相关的模块。
    • 数据采集部分:Android定义了一个Trace类。应用程序可利用该类把统计信息输出给ftrace。同时,Android还有一个atrace程序,它可以从ftrace中读取统计信息然后交给数据分析工具来处理。
    • 数据分析工具:Android提供一个systrace.py(python脚本文件,位于Android SDK目录/tools/systrace中,其内部将调用atrace程序)用来配置数据采集的方式(如采集数据的标签、输出文件名等)和收集 ftrace统计数据并生成一个结果网页文件供用户查看。

    从本质上说,Systrace是对Linux Kernel中ftrace的封装。应用进程需要利用Android提供的Trace类来使用Systrace。

    Systrace跟踪代码

    • 应用层代码添加systrace跟踪方式:
      Trace.beginSection(“TEST”);
      Trace.endSection();

    • framework的java层代码添加systrace跟踪方式:
      Trace.traceBegin(Trace.TRACE_TAG_VIEW, “performTraversals”);
      Trace.traceEnd(Trace.TRACE_TAG_VIEW);
      也可以使用:
      ATRACE_BEGIN(“TEST”);
      ATRACE_END();

    • framework的native代码添加systrace跟踪方式:
      ATRACE_INIT();
      ATRACE_CALL();

    后话:目前有很多工具可以用來分析測試Android的性能,比如:dumpsys、Systrace、TraceView、Update Threads(更新线程)、Update Heap(更新堆)、Allocation Tracker(分配跟踪器)等工具。

    文 | 力卉编程

    相关文章

      网友评论

          本文标题:工具笔记 | 性能测试及性能分析工具

          本文链接:https://www.haomeiwen.com/subject/sduuoctx.html