精华内容
下载资源
问答
  • Traceview

    2020-05-11 22:37:07
    Traceview Traceview is a graphical viewer for execution logs saved by your application. Traceview can help you debug your application and profile its performance. To start Traceview, enter the ...

    Traceview

    Traceview is a graphical viewer for execution logs saved by your application. Traceview can help you debug your application and profile its performance.

    To start Traceview, enter the following command from the SDK tools/ directory:

    traceview

    For more information on how to use Traceview, see 用 Traceview 和dmtracedump描绘
    Except as noted, this content is licensed under Creative Commons Attribution 2.5. For details and restrictions, see the Content License.

    About Android | Legal | 支持

    展开全文
  • TraceView

    2016-07-27 16:28:52
    Android TraceView TraceView是一个分析代码执行时间的图形化工具,使用它可以帮助我们调试应用 以及分析应用性能 如何使用TraceView 通过Android Device Monitor。进入Android Device Monitor之后,打开DDMS, ...

    Android TraceView

    TraceView是一个分析代码执行时间的图形化工具,使用它可以帮助我们调试应用以及分析应用性能

    如何使用TraceView

    • 通过Android Device Monitor。进入Android Device Monitor之后,打开DDMS,选择你的应用进程,然后点击“Start Method Profiling”按钮开始,再次点击按钮TraceView工作结束。DDMS会自动加载TraceView图。
    • 通过添加Trace code。在你的应用代码块的开始和结束分别添加android.os.Debug.startMethodTracing(String traceName)以及android.os.Debug.stopMethodTracing(),当运行结束后,就会有一个traceName.trace文件在/sdcard目录中生成。然后用Android Device Monitor打开traceName.trace文件即可。注意:需要在应用中添加WRITE_EXTERNAL_STORAGE权限
            Debug.startMethodTracing("perfTrace");
            mProgressBar = (ProgressBar) findViewById(R.id.id_progressbar);
            mHideHandler = new Handler() {
                @Override
                public void dispatchMessage(Message msg) {
                    super.dispatchMessage(msg);
                    if (msg.what == MSG_HIDE)
                       mProgressBar.setVisibility(View.GONE);
                    Debug.stopMethodTracing();
                }
            };

    分析TraceView

    TraceView图解析

    TraceView图

    这是我们通过上文中的代码得到的TraceView图,当我们点击Name列中的方法名时,会出现该方法的Parents以及Children。

    这里写图片描述


    • Parents表示调用这个方法的方法,也就是父方法
    • Children表示这个方法中调用的其他方法,也就是子方法
    • Incl Cpu Time %:该方法的执行时间(self + Children)占Trace代码段的执行之间的比重。
    • Incl Cpu Time:该方法的执行时间(self + Children),单位ms
    • Excl Cpu Time %:该方法self执行时间占Trace代码段的执行之间的比重
    • Excl Cpu Time:该方法self执行时间
    • Incl Real Time %:该方法的执行经历的墙上时间(self + Children)占Trace代码段的经历的墙上时间的比重
    • Incl Real Time:该方法的执行经历的墙上时间(self + Children)占Trace代码段的执行之间的比重。
    • Excl Real Time %:该方法的执行经历的墙上时间(self)占Trace代码段的经历的墙上时间的比重
    • Excl Real Time:该方法的执行经历的墙上时间(self),不包括子函数的经历时间
    • Calls + Recur Calls/Total:方法的调用次数+递归调用次数
    • Cpu Time/Call:方法平均每次执行所消耗的Cpu时间 = Incl Cpu Time / Calls
    • Real Time/Call:方法平均每次执行所经历的墙上时间 = Incl Real Time / Calls

    我们在分析方法执行时,应重点关注方法执行的相对耗时(也就是比重),以及方法调用次数等。方法的绝对执行时间受手机性能影响,只作参考。通常我们通过TraceView得到的只是Java层的方法执行情况,还有一个startNativeTracing,只能在模拟器上使用,但是功能更为强大,可以Trace kernel执行等。

    TraceView文件生成html

    在TraceView图中,我们不能搜索函数,为了便于分析问题,我们可以利用sdk/platform-toos/dmtracedump工具将traceView得到的*.trace文件转化为html文件,使用如下命令

    D:\android_debug\Traceview>dmtracedump -h perfTrace.trace > perfTrace.html

    得到的html图,可以用chrome或者猎豹等浏览器打开

    这里写图片描述

    TraceView文件导出函数调用图

    更为强大的是我们可以利用dmtracedump工具生成函数调用图,不过需要安装Graphviz(帮助生成函数调用图),安装方法很简单,Google下Graphviz即可,安装以后添加环境变量。这样我们就可以用dmtracedump工具生成函数调用图了。

    D:\android_debug\Traceview>dmtracedump -g perfTrace.png perfTrace.trace

    这里写图片描述

    小结

    使用TraceView不仅可以分析应用性能问题,还可以帮助我们学习代码的workflow等。

    展开全文
  • TraceView使用技巧.

    2018-04-08 20:05:26
    TraceView使用技巧.TraceView使用技巧.TraceView使用技巧.TraceView使用技巧.
  • traceview.bat

    2018-03-30 16:34:16
    sdk中的tools文件夹中缺少traceview.bat文件,导致报DDMS files not found:sdk\\tools\traceview.bat
  • 一、TraceView工具简述Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形界面的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。  一、TraceView工具简述  Traceview是android平台...
  • traceview文件

    2017-05-21 16:18:00
    mac系统里的android sdk所需要的traceview文件,能解决mac系统的eclipse的failed to get the required adt version number from the sdk的问题。 文章链接:http://blog.csdn.net/x1876631/article/details/72598961
  • ddms_traceView.zip

    2019-12-11 13:50:15
    这是一个通过DDMS分析Android的CPU占用过高生成的TraceView文件,希望对使用TraceView有帮助。
  • traceview使用总结

    千次阅读 2019-08-17 17:16:04
    文章目录1.traceview的用途2.生成trace文件的三种方式(1)代码生成(2)使用android studio生成(3)DDMS生成3.使用traceview打开trace文件4.分析trace文件 1.traceview的用途 traceview是Android sdk中的一个...

    1.traceview的用途

    traceview是Android sdk中的一个工具,用于分析计算性能,跟踪方法耗时导致的卡顿问题。它将traceview文件转为图形,直观的反应出代码的执行时间、执行次数,便于我们分析。

    2.生成trace文件的三种方式

    trace文件是log文件的一种,可以通过代码,也可以使用Android studio生成。

    (1)代码生成
    //开始 trace,保存文件到 "/sdcard/homeFragment.trace"
    //高版本手机保存到"/sdcard/Android/data/packageName/files/homeFragment.trace"
    Debug.startMethodTracing("homeFragment");    
        // ...
    Debug.stopMethodTracing();    //结束
    

    导出trace文件到电脑:
    adb pull /sdcard/homeFragment.trace C:\Users\Admin\Desktop

    若提示No such file,可能保存到sdcard/android 目录下了:
    adb pull /sdcard/Android/data/packageName/files/homeFragment.trace C:\Users\Admin\Desktop
    packageName是应用的具体包名

    (2)使用android studio生成

    profile/cpu 下选择记录traceview
    cpu/traceview

    android studio对trace也做了可视化:包括各方法的执行时间和占比

    (3)DDMS生成

    DDSM 全称 Dalvik Debug Monitor Server,是老版adt的调试工具。可生成trace后,查看。
    在这里插入图片描述

    3.使用traceview打开trace文件

    新版Android stuido 中已移除了DDMS,这里我们使用traceview工具来查看trace文件信息。

    工具目录:androidsdk/tools/traceview.bat

    But,打开该目录后发现,新版sdk中已缺失traceview,我们可以下载一个traceview.bat文件放在该目录下,命令行打开:
    traceview C:\Users\Admin\Desktop\homeFragment.trace

    提示报错:

    SWT folder '' does not exist.
    Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
    

    这是依赖库缺失,下载一个老版的sdk/tools/lib,将它放到tools目录下(合并lib)即可。
    在这里插入图片描述

    虽然提示deprecated,还是可以打开traceview。

    4.分析trace文件

    1.打开如下:
    在这里插入图片描述

    • 上半部分展示了线程:
      • 不同颜色表示不同方法,颜色约长,执行时间越久。
    • 下半部分展示了方法的执行时间:
      • cpu time/call:该方法占用cpu的时间
      • Calls + Recur Calls/Total :调用、递归次数
      • Incl Cpu Time vs Excl Cpu Time:某方法占用的cpu时间,incl包含内部调用其他方法的时间,excl不包含

    2.定位问题

    • 查看耗时的方法:点击 cpu time/call ,按照时间倒序
    • 查看方法执行次数:点击 Calls + Recur Calls/Total,按照次数倒序

    排序后逐个排查项目代码,进一步定位问题

    3.案例
    项目在每次启动主页时,耗时在1.5-2.5s,优化性能时,我们需要具体查看:

    • 哪些方法耗时
      在这里插入图片描述
      结果:initView方法执行耗时,并将children方法列举出来,我们可以逐步排查优化

    • 哪些方法执行次数过多:
      在这里插入图片描述

    结果:shareUtilUser.getString方法高频执行,查看parents,发现是登录信息,频繁操作导致。跟踪代码,发现每次获取登录的某个信息,会将所有登录相关的数据,都取出来了,因此这里就是我们需要优化的地方了。

    PS:附上 traceview下载地址

    展开全文
  • collective.traceview-源码

    2021-05-17 09:44:51
    TraceView for Plone collection.traceview软件包 支持(也称为Tracelytics)添加到了Plone中。 有关更多信息,请阅读完整的。 内容 TraceView将浏览器通过前端服务器到应用程序服务器的全部请求进行计时。 ...
  • traceview.exe

    2020-07-24 15:24:16
    win10 64位的traceview.exe 工具,亲自验证很好用。测试使用的是win10 64位系统,其他版本未测试。
  • traceview.zip

    2019-06-13 16:15:19
    福利,解决 DDMS files not found: C:\Users\Administrator\AppData\Local\Android\Sdk\tools\traceview.bat
  • 使用traceview和dmtracedump调试Android代码   ✿Android程序调试工具  Google为我们提供的代码调试工具的亮点:traceview和dmtracedump。有了这两个工具,我们调试程序分析bug就非常得心应手了。traceview帮助...
  • TraceView 的使用

    2018-11-18 20:23:41
    TraceView 的使用 TraceView 简介 TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot,对java层代码以及framework层代码进行分析。(native方法无法直接分析) ...

    TraceView 的使用

    TraceView 简介

    1. TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot,对java层代码以及framework层代码进行分析。(native方法无法直接分析)

    2. TraceView 本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者利用 DDMS 工具。

    3. 官方文档地址:

    https://developer.android.com/studio/profile/traceview.html
    

    TraceView 的生成

    traceview的使用方法有两种:

    1. 代码调用:
      在一些关键代码段开始前调用 Android SDK 中 Debug 类的 startMethodTracing 函数,并在关键代码段结束前调用 stopMethodTracing 函数。这两个函数运行过程中将采集运行时间内该应用所有线程(注意,只能是 Java 线程)的函数执行情况,并将采集数据保存到 /mnt/sdcard/ 下的一个文件中。
    /**
    * 创建
    */
    private void onCreate(){
        // 生成traceView的起点,保存traceView 的名称(路径:/mnt/sdcard/fileName)
        Debug.startMethodTracing("fileName");
    }
    
    /**
    * 销毁
    */
    private void onDestroy(){
        Debug.stopMethodTracing();
    }
    
    优缺点:分析精准;分析范围窄;需要编码
    适用场景:分析检测某一个方法的性能时适用
    
    1. 借助DDMS工具:
      DDMS 中 TraceView 使用示意图如下,通过选择 Devices 中的应用后点击开始
      按钮 Start Method Profiling(开启方法分析)和点击结束Stop Method Profiling(停止方法分析)


    开启方法分析后对应用的目标页面进行测试操作,测试完毕后停止方法分析,界面会跳转到 DDMS 的 trace 分析界面

    优缺点:分析范围广,操作简单,干扰多
    适用场景:分析一个过程
    

    ###TraceView 的分析
    一. 通过AndroidStudio 打开trace文件,展示的界面如下:

    将方法调用顺序可视化,方法执行的时间也可视化了。
    tips:Android studio 打开后,面板中文字特别小,此时可以通过放大镜来查看。(Mac 快捷键:option + command + 8)

    二. 通过ADM打开trace文件,展示的界面如下:

    TraceView 界面比较复杂,其 UI 划分为上下两个面板,即 Timeline Panel(时间线面板)和 Profile Panel(分析面板)。上图中的上半部分为 Timeline Panel(时间线面板),Timeline Panel 又可细分为左右两个 Pane:

    1. 时间面板
      1. 左边 Pane 显示的是测试数据中所采集的线程信息。
      2. 右边 Pane 所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。这些信息包括函数名、函数执行时间等。、
      3. 可以在时间线 Pane 中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。
    2. 分析面板
      1. Profile Panel 是 TraceView 的核心界面,其内涵非常丰富。它主要展示了某个线程(先在 Timeline Panel 中选择线程)中各个函数调用的情况,包括 CPU 使用时间、调用次数等信息。而这些信息正是查找 hotspot 的关键依据。
      2. 下表列出了 Profile Panel 中比较重要的列名及其描述:

    举个例子:

    private void init(){
        a();
        b();
        c();
        d();
        
        for(int i=0;i<100;i++){
            System.out.print("i = " + i);
        }
    }
    

    ###TraceView 的实践

    1. 先通过TraceView找到 hotspot,一般hopspot函数有以下两种:

      1. 一类是调用次数不多,但每次调用却需要花费很长时间的函数。
      2. 一类是那些自身占用时间不长,但调用却非常频繁的函数。
    2. 举个例子:

      如上图,获取sharedPreference 耗时很严重,阻塞主线程,将该操作抛到异步线程。

    ###总结
    性能优化就像海绵中的水,挤一挤总会有的。同时,性能优化并不是一劳永逸的工作,而是一个漫长而具有挑战的任务;项目的各个阶段都会有性能上的问题,在用户体验的基础上持续进行打磨,持续保持产品的良好性能才能赢得好口碑。(和保持身体健康是一个道理)

    展开全文
  • android traceview 总结

    2011-12-18 17:05:00
    android traceview 总结
  • 欢迎使用TraceView Ruby宝石Traceview宝石为Ruby提供了TraceView性能检测。 它具有报告一系列库,数据库和框架(例如Rails,Mo)上的性能指标的能力。欢迎使用TraceView Ruby Gem traceview gem为Ruby提供了Trace...
  • TraceView 简介及其案例实战的源码module
  • TraceView工具分享

    2018-09-07 16:04:37
    TraceView工具分享,今天头一次碰见这个错误,说我缺这个工具发现咱们这个都要蛮多分的就去自己的电脑里检索了一下 还真有一个
  • traceview_tool_lib.zip

    2019-08-17 17:30:18
    traceview工具包,下载后解压到android/sdk/tools目录即可
  • traceview.bat文件下载

    2018-04-04 10:39:08
    DDMS files not found traceview.bat问题,将traceview.bat文件放到SDK相应tools文件夹下,重启eclipse
  • TraceView总结

    2015-06-03 12:24:00
    一、TraceView简单介绍 TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析。 TraceView是图形化的工具,终于它会产生一个图表,用于对性能分析进行说明。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,199
精华内容 32,879
关键字:

Traceview