1)独占时间是在方法中花费的时间2)包含时间是在方法中花费的时间加上在任何被调用函数中花费的时间3)我们将调用方法称为"父"并将方法称为"子".参考链接:点击这里
这里的问题是:
有什么区别
在我的一个示例中,方法1()的跟踪文件:包含CPU时间= 242毫秒&包含实际CPU时间= 5012毫秒
如果您有任何想法,请帮助我.
在Eclipse SDK中查看跟踪文件时,如何缩小时间轴面板?
我一直遇到app(使用java和C++以及OpenCV)的问题,这似乎与执行各种任务所花费的时间非常不一致.为了帮助诊断这个,我在java(被调用one_off_speed_test())中创建了一个函数,它只需要一个循环中的一系列整数数学问题,大约需要半秒钟,然后打印到日志所需的时间.如果我从内部重复调用此函数,onCreate()则每次调用所用的时间非常一致(+ = 3%),但如果我从内部调用它onCameraFrame(),则OpenCV在从相机准备好图像时调用的函数,则每个框架中进行数学测试所花费的时间因任何因素而异.我决定在eclipse/DDMS中尝试执行采样器,看看我是否可以解决发生的事情.我看到当我点击one_off_speed_test()它时,它列出了该功能的父母和孩子,以及一行说" (上下文切换) ".然后在该行上,在标有" Incl Real Time " 的列下,它显示"66%".现在我对使用DDMS并不是很专业,而且我对上下文切换只有一个朦胧的想法,但是到目前为止的描述中,看起来我的上下文切换问题需要花费很多时间吗?或者我误解了DDMS输出.

我正在看这个页面:使用Traceview和dmtracedump进行分析
在"配置文件面板"下,它具有以下文本,引用文本下方的示例性能分析结果:
表中的最后一列显示了对此方法的调用次数加上递归调用的次数.最后一列显示了对该方法的调用总数中的调用次数.在这个视图中,我们可以看到有14次调用LoadListener.nativeFinished(); 查看时间轴面板显示其中一个电话花了很长时间.
我对此描述感到困惑.首先,本引文中的前两句似乎是指同一列.那么最后一栏实际上包含了什么?其次,我不明白"时间轴面板"的确切位置,我必须看到它"显示其中一个电话花了不寻常的时间".
能帮我理解一下这篇文章吗?
今天我像往常一样使用DDMS,但是有一个错误 - 它无法显示跟踪报告,跟踪视图canot打开,异常信息如下,这很奇怪,因为它在几天前就可以了.我的Android版本是4.0.3,eclipse 3.7,ADT 21,Mac OSX 10.7.5,任何一个都有相同的错误


无法创建编辑器ID com.android.ide.eclipse.traceview.editors.TraceviewEditor:方法退出(android/os/Debug.isMethodTracingActive()Z)与当前方法不匹配(dalvik/system/VMDebug.isMethodTracingActive()Z)
java.lang.RuntimeException: Method exit (android/os/Debug.isMethodTracingActive ()Z) does not match current method (dalvik/system/VMDebug.isMethodTracingActive ()Z)
at com.android.traceview.ThreadData.exit(ThreadData.java:106)
at com.android.traceview.DmTraceReader.parseData(DmTraceReader.java:323)
at com.android.traceview.DmTraceReader.generateTrees(DmTraceReader.java:92)
at com.android.traceview.DmTraceReader.<init>(DmTraceReader.java:87)
at com.android.ide.eclipse.traceview.editors.TraceviewEditor.createPartControl(TraceviewEditor.java:258)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756)
at org.eclipse.ui.ide.IDE.openEditorOnFileStore(IDE.java:1155)
at com.android.ide.eclipse.traceview.TraceviewLauncher$1.run(TraceviewLauncher.java:65)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at …Run Code Online (Sandbox Code Playgroud) 我想看看我的踪迹.
1-在代码中,我添加了以下代码行:
// Start trace recording
android.os.Debug.startMethodTracing("hc_traceview");
Run Code Online (Sandbox Code Playgroud)
和
// Stop trace recording
android.os.Debug.stopMethodTracing();
Run Code Online (Sandbox Code Playgroud)
2-我可以hc_traceview.terac在DDMS的文件浏览器中看到" ".
3-基于在Traceview中查看跟踪文件,我在终端中运行了以下命令:
@hesam-K5VD:~/Desktop/Eclipse/sdk/tools$ traceview /mnt/sdcard/hc_traceview
Run Code Online (Sandbox Code Playgroud)
但是输出的是:
The standalone version of traceview is deprecated.
Please use Android Device Monitor (tools/monitor) instead.
trace file '/mnt/sdcard/hc_traceview' not found
Run Code Online (Sandbox Code Playgroud)
4-根据建议,我在终端运行以下命令:
@hesam-K5VD:~/Desktop/Eclipse/sdk/tools$ monitor /mnt/sdcard/hc_traceview
Run Code Online (Sandbox Code Playgroud)
DDMS打开但我的痕迹不在这里:(我怎么能看到我的痕迹?
任何建议将不胜感激.
我已经写了几个月的Android应用了.它尚未发布,但已安装在我的设备中.
今天我从Battery Doctor应用程序收到一条关于我的应用消耗了大量CPU的通知,即使我从昨天起就没用过它.
所以基本上我的应用程序在后台运行,它不应该做任何事情,但它正在使用CPU.
所以我打开了TraceView并在我的应用程序中进行了一些分析(在此分析时间内我根本没有与我的应用程序进行交互)这就是我得到的:http://i.imgur.com/ PYg6twX.png
我在这里很无能为力.我从实际代码中看不到任何功能,所以我甚至不知道从哪里开始查找.我真的不明白屏幕截图中的功能是什么,或者为什么它们会出现在那里.
所以我有几个问题,我真的很感激一些帮助:
非常感谢!
我主要从事 C 语言的工作,我需要与底层硬件和操作系统进行交互,现在我正在转向 Android 应用程序。我将编写时间紧迫的应用程序,并涉及对 Android 操作系统和硬件的深入理解。
有人可以将我引导到有助于我开发成功应用程序的资源(文章、视频):基本上,我正在寻找有关 Android 操作系统及其与硬件交互的资源。
提前致谢
我正在阅读这篇关于在你的Android应用程序上运行traceview的文章:https://developer.android.com/studio/profile/traceview.html我假设他们正在谈论的模拟器是android模拟器,而不是Genymotion模拟器是我正在使用的那个.
它表示要将跟踪文件从模拟器中拉出到主机上,您只需运行以下命令:
adb pull /sdcard/startup.trace /tmp
Run Code Online (Sandbox Code Playgroud)
我在我的Genymotion模拟器上运行它并找不到该文件.然后,我使用Android设备监视器查看设备内部的文件,但在该位置没有保存名为startup.trace的文件.
我在我的代码中这样做了:
public class MyApplication extends MultiDexApplication {
public void onCreate() {
super.onCreate();
Debug.startMethodTracing("startup");
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的活动onResume方法中停止了测量以测量我的应用程序的启动时间:
@Override
protected void onResume() {
super.onResume();
Debug.stopMethodTracing();
}
Run Code Online (Sandbox Code Playgroud)
我希望traceview测量我的启动时间,但不知道文件保存在我的Genymotion模拟器上的哪个位置.任何人都可以帮助我保存文件的位置吗?
我使用Android设备监视器(方法分析)和Android监视器(方法分析)为cpu时间分析了相同的应用程序,但是,我得到了不同的结果.关于他们的基础工作如何不同的任何想法?
1)Android设备监视器 https://developer.android.com/studio/profile/traceview.html
2)Android监视器 https://developer.android.com/studio/profile/am-basics.html
至于我观察到的,在Android监视器(2)中没有选项可以选择基于跟踪或基于采样的分析.此外,没有选项可以更改方法跟踪的缓冲区大小,因此只能收集几秒钟的数据.
我很好奇一个人是否比另一个更准确或更准确.
android ddms android-traceview android-sdk-tools android-studio
android ×10
ddms ×3
cpu-usage ×2
profiling ×2
adt ×1
android-ndk ×1
eclipse ×1
genymotion ×1
opencv ×1
performance ×1