问题标签 [android-profiler]

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 投票
2 回答
134 浏览

android - 如何检测和解决android应用程序性能问题?

我试图弄清楚为什么当用户在活动之间切换和创建对话框时我的应用程序口吃。

我转储我的应用程序性能,以便使用 Profiler 检测异常并使用该应用程序一段时间。

在此处输入图像描述

与其他对象相比,我设法检测到的唯一异常是 Bitmap 的“Native Size”数量相对较多:

在此处输入图像描述

但我真的不知道它是否异常,如果是,如何调查和解决它。

该应用程序非常大,所以我认为最好共享整个 repo 以便您能够查看代码:

https://github.com/steingolditay/ezBalans

0 投票
0 回答
59 浏览

android - 有没有办法从 Android Profiler 导出数据?

我想从 Android Profiler 导出数据,我想在两个应用程序之间创建一个比较图。问题是我想在一段时间内获得一定百分比的内存使用率。我知道我可以通过将鼠标悬停在时间线上来手动完成。问题是这两个应用程序都需要很长时间,包括 CPU 和 RAM。

是的,我只是为其中一个应用程序手动完成的,但值不正确。

我将如何解决这个问题。这里有没有人使用过 Android Profiler 并收集数据以稍后制作某种图表?

将不胜感激帮助或有益的方式来做到这一点。

0 投票
1 回答
96 浏览

java - Android 内存分析器对象引用与对象哈希码不匹配

和

从上面从 android studio 堆转储截取的屏幕截图中,我可以清楚地知道对象哈希码 [ 52675819 ] 与堆转储中对象引用 [ proxyVideoSink@315784776 ] 中显示的内容不匹配。所以我的问题是对象的堆转储中的这个对象参考号[ 315784776 ]是什么,它指的是什么?

此映射的目的是查找在 java 代码中分配的实际对象的位置。

我的 proxyVideoSink 类代码如下供参考:

0 投票
1 回答
41 浏览

android - 可以在 Android Studio 中使用 Profiler 而不将其附加到特定应用程序吗?

我正在尝试在 Android Studio 中使用 Profiler 来监控 CPU 和内存使用情况。我想看看当我开始我的应用程序时它们是如何增加的。但是,我只能在应用程序启动后启动它,因为我必须将它附加到会话才能在 Profiler 窗口中查看任何内容。

可以在 Android Studio 中使用 Profiler 而不将其附加到特定应用程序吗?

0 投票
1 回答
1158 浏览

android - Android Studio Profiler 中显示“无可调试进程”

当我尝试在 Android Studio 中使用探查器时,我可以看到我连接的设备,但我在探查器中得到“无可调试进程”。有人可以帮我为什么我得到“没有可调试的过程”。

0 投票
1 回答
476 浏览

android - Android GPU/HWUI Rendering Profiler 中绿色条的含义

在此处输入图像描述

这是我的应用程序的配置文件 HWUI 渲染的屏幕截图。正如您在屏幕截图中看到的标记部分,它是一个石灰绿色的颜色条。我试图在此处的文档中弄清楚这种颜色的含义(https://developer.android.com/topic/performance/rendering/inspect-gpu-rendering)。但是,文档中没有石灰绿色,如下所示。

在此处输入图像描述

所以有人知道这个石灰绿条是什么意思吗?

0 投票
1 回答
282 浏览

android - 我正在使用 systrace 对其 GPU 的 android 应用程序进行性能调查。systrace 中的“GPU 完成”线程是什么意思

如果在应用程序启动时存在 tflite 模型初始化,我看到“GPU 完成”线程在启动应用程序的较长时间后进入空闲模式。它是否说明了 android 设备中 GPU 的更高使用率?空闲状态意味着当时不需要GPU使用?

0 投票
1 回答
89 浏览

android - 如何从 Android v4 Profiler 显示查看位图?

我试图看看为什么我的原生尺寸已经膨胀了。它主要是由Bitmap引起的

在此处输入图像描述

我使用了Android Studio 4.1.1 我试图找出并发现在旧的Android Studio中右键菜单或参考选项卡旁边会有“查看位图”

但在这个工作室里,我什么也没看到。我怎么知道哪个函数创建了这么多位图?

0 投票
0 回答
29 浏览

react-native - 找出 React Native 项目中的哪些部分或代码导致来自 android profiler 的大内存问题

我正在为反应本机应用程序运行 android 分析器,当我进行堆转储时,本机内存为 220.7MB java heap dump。下是实时分配的示例,并查看名为 LJava/lang/String 的对象。就像第一个图像中的 Bitmap 对象一样,当我尝试单击分配调用堆栈窗口下的行时,它们都没有将我带到任何代码行。我无法告诉它被调用的具体位置。

有没有办法判断大内存是否是由于我依赖的库与我自己实现的代码?有没有办法从 javascript 端找出哪个函数或类消耗大量内存?

0 投票
1 回答
120 浏览

android - 如何在Android Profiler输出中查找主线程等待后台线程持有的锁的所有事件

我的应用程序使用后台线程来初始化主线程加载英雄活动所需的一些东西。它有一堆用于同步的锁。我正在寻找一种快速的方法来绘制可能的堆栈跟踪,其中主线程在应用程序启动期间等待后台线程持有的锁。我检查了线程状态监视器。我该如何调试?是什么原因造成的?但这是在谈论点到时间线程状态,因为我正在寻找在启动期间发生的所有此类事件,但不知道这些事件发生在哪里。

我确实看到可以通过手动检查启动 android 配置文件跟踪并查看各种线程堆栈以找到这些事件来找到此信息,但是有很多数据需要处理。如果该工具可以显示主线程等待其他线程持有的锁的次数、花费的总时间以及它持有这些锁的位置,那就太好了。

Q1) 我们知道 Android profiler 是否可以显示这个吗?我检查了https://developer.android.com/studio/profile/cpu-profiler但找不到它。

Q2)如果没有,是否有任何其他工具可以解析分析器导出的跟踪并打印此信息?

Q3)如果没有,您对如何读取导出的跟踪文件有任何指示吗?它似乎是二进制的。我正在通过https://github.com/JetBrains/android弄清楚。现在似乎正在使用 perfetto,但我还没有编写任何实用程序来读取该数据。

更新:我发现 CPU 分析/Systrace 选项显示我的主线程确实保持空闲或等待某些资源,但是它没有关于它等待什么或空闲一段时间后运行哪些方法的信息。关于如何结合 java 方法跟踪和 sys 跟踪视图的任何指针?

在此处输入图像描述