问题标签 [systrace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1971 浏览

python - Unable to collect systrace in eclipse

Unexpected error while collecting system trace

Using windows 7 with python 2.7 and eclipse

0 投票
1 回答
456 浏览

android - systrace 生成的 html 文件中的 SurfaceFlinger 进程在哪里?

根据文档,图中应该有一个 SurfaceFlinger 进程,因此我可以使用它来查找丢失帧的原因。以前是看到的,现在一堆包名变成了……,见下文。

在此处输入图像描述在此处输入图像描述

那么如何使用这个文件来解决我的性能问题呢?

0 投票
1 回答
407 浏览

android - 在 Android 上,是否有将 logcat API 输出路由到 systrace 的方法?

我正在使用 Android systrace 来研究 ExoPlayer 开源应用程序的动态行为。我在这里把学习笔记写成PPT

无论如何,我喜欢看到一种自动将 LogCat API 的日志消息作为事件添加到 systrace 的方法,这样,logcat 事件可以与 systrace 输出图中的事件相关联。

有没有办法轻松做到这一点?

我可以破解 ASOP 代码,但估计 Google 中的某个人可能已经这样做了。

0 投票
0 回答
2713 浏览

android - 使用长文本显示 textview settext 性能非常慢

我尝试在 Android 应用程序中使用 TextView 显示长文本(最大约 300 KB),并且 Nexus 7 上的性能很糟糕(大约 10 秒)。文本是可滚动的,因此我们将其分成更小的部分并尝试在 ListView 中显示它们(使用 ViewHolder 模式)。性能提高了,但滚动动画仍然非常不稳定。实际上,纯文本的性能是不可接受的(Nexus 7 不是最慢的设备),但最终我们将使用样式文本(使用 SpannableString),这将完全破坏性能。

我在下面显示 systrace 屏幕(实际上是链接,很抱歉,但我没有上传图片的声誉:)):

我知道文本渲染是一项不平凡的任务,但 iOS 完美地处理了它,那么为什么 Android 不能呢?这个问题有什么合理的解决方案吗?

启用硬件加速。

0 投票
0 回答
353 浏览

android - systrace 输出 html 只有 cpu 行

下图是我的 systrace 输出,只有一行。将 html 与一些示例文件进行比较,似乎在我的文件中,没有像

是这个原因吗?如何解决?我正在使用 mips android 4.4.2。

在此处输入图像描述

0 投票
1 回答
343 浏览

android - 开发人员选项android中缺少“启用跟踪”

我正在尝试使用 systrace 分析我的应用程序的性能。但是在开发人员选项中,我在许多教程中看到的开发人员选项中找不到“启用跟踪”。

我可以在 About device 中看到 Android 版本是 4.0.4。

请帮助我如何解决这个问题?

谢谢。

0 投票
1 回答
927 浏览

android - 在 systrace 中获取 BufferQueue 状态

我试图更好地了解我的应用程序如何与 Android 的缓冲系统交互。具体来说,我想在将帧添加到 SurfaceFlinger 的 BufferQueue 时针对 Vsync 信号进行优化。

我了解在使用 SurfaceViews 时,BufferQueue 信息包含在其中:

如果我使用的是 TextureView 怎么办?在这些情况下没有 SurfaceView 计数器。不使用 SurfaceView 时是否还有其他缓冲区状态指标?应用程序计数器是否也表示 BufferQueue 状态?

BufferQueueProducer.cpp 和 BufferQueueConsumer.cpp 中的以下行似乎暗示了这一点,但如果可能的话,我可以使用信任投票:

0 投票
1 回答
963 浏览

android - Systrace 显示 performTraversals 和 getDisplayList 需要很长时间

我有一个 gridView,一次在屏幕上显示 20 个自定义组件(作为网格视图项)。滚动视图非常不稳定,我正在尝试确定原因。我的 systrace(如下所示)显示了在 performTraversals 和 getDisplayList 上花费的大量时间(大约 40 毫秒),但我不知道他们在做什么。我为 onMeasure、onLayout 和 onDraw 添加了自定义跟踪。相比之下, 这些都是微不足道的。

我不确定下一步该去哪里确定一直在占用什么...

在此处输入图像描述

0 投票
3 回答
3686 浏览

android - 是否可以在没有 JNI 的情况下直接从本机代码记录 Android systrace 事件?

Android systrace 日志系统非常棒,但它仅适用于代码的 Java 部分,通过Trace.beginSection()Trace.endSection(). 在代码的 C/C++ NDK(本机)部分中,它只能通过 JNI 使用,这在没有 Java 环境的线程中速度很慢或不可用......

有没有办法从原生 C 代码向主 systrace 跟踪缓冲区添加事件,甚至生成单独的日志?

这个较早的问题提到 atrace/ftrace 是 Android 的 systrace 使用的内部系统。可以(轻松地)利用它吗?

BONUS TWIST:由于跟踪调用通常在性能关键部分,理想情况下应该可以在实际事件时间之后运行调用。即我更愿意能够指定记录的时间,而不是调用自己轮询它。但这只是锦上添花。

0 投票
1 回答
1032 浏览

android - Android systrace 或 atrace python parser 解析结果

任何人都知道如何解析 systrace 或 atrace 文件,如下所示,并使用 python 或任何其他语言获取任何进程的时间戳?