【发布时间】:2022-08-09 16:29:27
【问题描述】:
我想分析我的应用程序,但我不确定每个线程都做了什么。当然,我可以假设最“有意义”的线程角色,但一些线程的责任对我来说仍然不清楚。例如。什么是“废话”线程和“Studio:socket”线程?还有哪些线程在分析时值得关注?顺便说一句,模拟器和物理设计的线程数不一样,这对我来说真的很奇怪:
我在哪里可以找到这些线程的描述?我曾尝试用谷歌搜索它,但没有成功。
标签: android-profiler
我想分析我的应用程序,但我不确定每个线程都做了什么。当然,我可以假设最“有意义”的线程角色,但一些线程的责任对我来说仍然不清楚。例如。什么是“废话”线程和“Studio:socket”线程?还有哪些线程在分析时值得关注?顺便说一句,模拟器和物理设计的线程数不一样,这对我来说真的很奇怪:
我在哪里可以找到这些线程的描述?我曾尝试用谷歌搜索它,但没有成功。
标签: android-profiler
Studio: 线程是由 Android Studio 的 JVMTI agent 启动的线程,可用于捕获与性能相关的应用数据并将其发送到 Android Studio 分析器。如果您不想看到它们或希望最大限度地减少它们对您的应用程序的性能影响,您可以使用profileable 标签构建您的应用程序。这样 JVMTI 代理就不会被附加,但是你会丢失一些profiler functionality。
至于crap.coldshower 线程,它是一个截断的字符串,因为Linux 线程名称的上限为15 个字符。全名可能是某个包名com.xxxcrap.coldshower,通常是应用程序的主线程。
【讨论】:
Thread-N、perfetto_hprof_ 和其他线程呢?我在哪里可以找到有关它的文档?
Thread-N 可能是由 Java 运行时或您的应用程序使用的某个库创建的名称。 perfetto_hprof_ 是 Perfetto (perfetto.dev) 创建的线程,是 Android Studio 用来捕获性能数据的工具。没有一个很好的方法来查找线程名称的文档,因为任何应用程序/库都可以随意命名线程。