问题标签 [eclipse-mat]
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.
memory - 如何使用现有的 Eclipse MAT 索引进行交互式分析
我正在尝试使用 Eclipse MAT(内存分析工具包)来分析一些相当大的堆转储(~2G)。不幸的是,我的笔记本电脑有 32 位 Windows,并且 MAT 用完了堆空间@1.4G 分配的堆。我成功地在一个大型的无头 64 位机器上从命令行运行了堆索引器。但是,我无法说服 MAT 从我笔记本电脑的目录中导入这些索引文件,以便我可以交互地调查堆。我加载堆的所有尝试(连同旁边的索引文件)都导致 MAT 决定重新解析堆文件而不是使用现有索引。想法?
java - 在 OQL 的堆转储中获取类的静态字段
我有一个堆转储,我正在使用 Eclipse MAT,但我想这应该通过 visualvm 或任何 OQL 客户端工作。
我们可以通过执行类似的操作来选择类的所有实例的字段
...但这仅限于成员变量和带有实例的类型。
如何选择没有实例的类的静态字段?
java - 用于计算符合条件的对象的 OQL 语法
如何使用 OQL 语法计算 Eclipse MAT 中的对象?这不起作用:
(我想统计加载到内存中的hibernate pojos的数量)
必须有一个非常快速的方法来做到这一点......谢谢你帮助我!
android - Google Maps API 导致内存泄漏?
我刚开始使用Eclipse 内存分析器来尝试解决扩展 MapActivity 的活动中的内存泄漏,但我不确定我是否正确理解了它的输出。为了分析泄漏,我启动了活动并旋转了几次屏幕,然后我进行了堆转储并打开了它。我做的第一件事是打开直方图视图 并查找我的活动(称为 ChangeLocationActivity)。这看起来确实像内存泄漏,因为同一个 Activity 存在三个实例。所以我得到了带有传入引用的对象列表,然后得到了“GC Roots 的路径”,不包括所有三个实例的弱引用。这是第一个实例的路径,这个对于第二个实例(自定义 MyLocationOverlay 是一个非常简单的类,它是为了绕过某些摩托罗拉设备上的错误而创建的,除了在 drawMyLocation() 中捕获异常之外没有什么特别的),最后这是第三个实例,看起来像当前显示的那个。
正如我之前所说,我不确定我是否正确理解了这些结果(Eclipse 内存分析器非常强大但非常复杂),但据我所知,导致内存泄漏的原因似乎与 Google 地图库有关。谁能告诉我我是对的还是我只是不理解这些结果?
android - 如何实际查看从 Android 堆转储中获取的位图
在跟踪我的应用程序中严重的内存问题的过程中,我查看了我的应用程序中的几个堆转储,大多数时候我有一个我不知道的巨大位图。
它需要 9.4MB,或 9,830,400 字节,或者实际上是 1280x1920 图像,每像素 4 字节。
我检查了 Eclipse MAT,它确实是一个字节 [9830400],它有一个传入引用,即android.graphics.Bitmap
.
我想把它转储到一个文件中并尝试查看它。我不明白它是从哪里来的。我所有的drawables中最大的图像是一个640x960 png,它需要不到3MB。
我尝试使用 Eclipse 来“将值复制到文件”,但我认为它只是将缓冲区打印到文件中,而且我不知道任何可以读取字节流并将其显示为每像素 4 个字节的图像软件图片。
任何的想法?
这是我尝试过的:将字节数组转储到文件中,将其推送到 /sdcard/img,然后加载如下活动:
我什么也没看到。
你知道图像是如何编码的吗?说它存储在byte[] buffer
. buffer[0]
是红色的,buffer[1]
是绿色的,等等?
java - 如何在 MAT Eclipse 的 OQL 中使用“AND 运算符 (&&)”
我正在对java rmi应用程序进行性能调整,并使用 OQL 执行以下查询:
上面的查询在JVisualVM上成功编译,一些记录后跟此错误:-
结果太多。请细化您的查询。
相同的查询无法在Eclipse-MAT中执行。
之后,&& tpoint.csf!=null
从 中删除,它在Eclipse-MATabove query
中编译得很好。与 JVisualVM 相比,它花费的时间也非常少,并且可以显示所有记录。
我无法找到&& operator
在 Eclipse-MAT 中使用的正确语法。
面对很难为Eclipse-MAT找到好的 OQL 参考,好的参考是值得赞赏的。
提前致谢...
java - 是否可以从 hprof 转储/堆转储中的线程中查看线程
我有一个大型(5GB)hprof 转储,由应用程序在OutOfMemoryError
发生时创建。(使用 XX:HeapDumpOnOutOfMemoryError)。
不幸的是,发生此错误时没有收集任何日志。重新创建这将需要几个小时。我希望某些工具可以显示来自 hprof 的异常堆栈跟踪或所有线程堆栈等。
我目前正在使用MAT,看不到获取线程信息的方法。我可以使用哪个工具?
(我不确定 hprof 文件是否有关于 OOM 发生时调用的线程/位置的信息)。
(我知道在正常情况下如何进行线程转储。这里的麻烦是事件已经发生了,我只有 hprof 转储。)
eclipse - 如何使用 Eclipse MAT 进一步挖掘内存泄漏
我有一个问题,ScheduledThreadPoolExecutor 最终会处理 300 万个未来任务。我正在尝试查看什么类型的任务,以便我可以前往安排该任务的位置,但我不确定如何从该屏幕获取任何信息(我尝试右键单击这些未来的任务并在菜单中选择各种选项) . gui中似乎缺少一些东西,比如指向实际可运行文件的链接或其他东西......
关于如何进一步深入研究的任何想法?
android - 以编程方式解析内存快照 hprof 索引文件
我正在尝试以编程方式分析 hprof 文件。使用 android-sdk 中的 hprof-conv 工具,我生成了一堆 com.your.package.index 文件。
如何以编程方式解析这些 .index 文件?
我想在支配树上运行一些自定义分析,这很容易通过 MAT(Eclipse 的内存分析器)手动完成,但希望以自动化方式完成。
oql - OQL:具有保留堆的 Tomcat 线程
我在加入两个 OQL 语句时遇到问题。由于 OQL 中的子选择语法有点古怪,有人可以帮帮我吗?
选择 1
将返回一个包含 2 列的结果集:线程名称 | 保留堆大小
选择 2
还将返回一个包含 2 列的结果集:线程名称 | 请求 uri
问题
我怎样才能将这些加入到 3 列的单个选择中?
所以结果是:线程名 | 请求 uri | 保留堆大小