问题标签 [hprof]

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 投票
3 回答
7260 浏览

android - 有没有办法让 Android 进程在 OutOfMemoryError 上产生堆转储?

Sun JVM 支持-XX:+HeapDumpOnOutOfMemoryError在 Java 进程用完堆时转储堆的选项。

Android 上是否有类似的选项会在 OutOfMemoryException 上使 android 应用程序转储堆?手动使用 DDMS 时,很难尝试正确计时。

0 投票
1 回答
790 浏览

java - 导致 OOM 的线程的堆栈跟踪

我有一个 Java 应用程序,它正在获取 OutOfMemoryError,用于堆空间。我启用了 -XX:HeapDumpOnOutOfMemoryError,并获得了生成的 hprof 文件。

然而,转储显示堆、permgen 等中还有大量空间。我相信这可能是单个请求大量内存(例如 1 GB 数组)的原因,该请求失败,因此不会t 出现在转储中。

基本上,我想在抛出 OOM 时查看导致 OOM 的线程堆栈。

从 hprof 转储中可以实现吗?

0 投票
1 回答
811 浏览

scala - 如何从 sbt 0.10 定义要使用 hprof 运行的任务

如何定义“运行”和“测试:运行”任务以在分叉的 JVM 上使用 hprof 运行。

在 build.sbt

此设置使两个运行任务都与 hprof 一起工作。

我想定义我的 hprof 任务以保持默认的“运行”和“测试:运行”任务并在 sbt 提示符下使用。

如何定义这样的任务?

0 投票
2 回答
643 浏览

clojure - 请帮助我理解这些 Clojure Hprof 痕迹

我有一些模拟然后处理数值数据的 Clojure 代码。数据基本上是双值的向量;处理主要涉及以各种方式对它们的值求和。我将在下面包含一些代码,但我的问题(我认为)更笼统 - 我只是不知道如何解释 hprof 结果。

无论如何,我的测试代码是:

wherespin-voxels应该比哪里更贵spin-signals(尤其是重复多次时)。我可以给出较低级别的例程,但我认为这个问题更多是关于我不了解痕迹的基础知识(下)。

当我用 lein 编译它然后做一些简单的分析时:

并且配置文件跟踪看起来像:

这很酷。到这里,我很高兴。我可以看到我正在浪费时间处理数值的通用处理。

所以我查看了我的代码并决定,作为第一步,我将替换vecd-vec

我不确定这是否足够——我怀疑我还需要在不同的地方添加一些类型注释——但这似乎是一个好的开始。所以我再次编译和分析:

万维网。所以它明显变慢了。和简介?

我在这里包含了更多行,因为这是我不明白的部分。

为什么Vec.count出现这么频繁?这是一个返回向量大小的方法。属性的单行查找。

我假设我的速度较慢,因为我仍在 Double 和 double 之间来回跳跃,并且当我添加更多类型注释时,情况可能会再次改善。但我不明白我现在拥有什么,所以我不太确定犯错的前锋有多大意义。

请问,任何人都可以笼统地解释上面的转储吗?我保证我不会重复调用count- 相反,我有很多映射和减少以及一些显式循环。

我想知道我是否对 JIT 感到困惑?也许我错过了一堆信息,因为函数被内联了?哦,我正在使用 1.3.0-beta1,因为它似乎有更明智的数字处理。

[更新] 我在http://www.acooke.org/cute/Optimising1.html总结了我的经验- 尽管从未理解这一点,但我得到了 5 倍的加速(实际上是在清理了更多并移至 1.3 后加速了 10 倍)。

0 投票
1 回答
1020 浏览

android - Android hprov-dump 给我错误:期待 1.0.3

我在 Eclipse DDMS 中使用了 Dump HPROF 文件选项,并将我的 hprof 文件命名为 in.hprof,但是当我尝试hprov-conf in.hprof out.hprof从命令行执行此操作时,它给了我错误“错误:期待 1.0.3”。有任何想法吗?

0 投票
2 回答
478 浏览

scala - 使用 hprof 分析 scala for 循环

大街上的消息是 scala 中的 for 循环比 while 循环慢。

减缓:

快速地:

如何使用 hprof 来判断 for 循环是否是我代码中的瓶颈?我正在使用 分析我的代码-agentlib:hprof=cpu=samples,“CPU SAMPLES”部分中的方法是什么?

我想知道我的优化工作应该集中在哪里。for循环是瓶颈吗?

0 投票
1 回答
1152 浏览

java - 以编程方式即时启动 Java HPROF 分析器

当满足某些运行时条件时,我试图有选择地监视/分析 Java 应用程序。我已经能够使用HotSpotDiagnosticMXBean即时转储堆,这非常有用。

我现在正在尝试对 CPU 分析做类似的事情,希望更有效地针对特定的代码路径。我对命令行HPROF 界面和 NetBeans 分析器有一些经验,但两者都需要事先启动。

有没有办法从正在运行的应用程序中以编程方式激活 HPROF 分析器?最好是可以让我随意启动和停止分析过程的东西?

0 投票
1 回答
526 浏览

java - 无论 `lineno` 值如何,hprof 探查器输出都不包括行号

我在跑

在输出中我得到没有行号的堆栈帧

如果我lineno=y改为lineno=n我仍然得到Unknown line.

我用-g. 我的javac样子

我检查了.class文件以确保它们具有行号:

显示很多东西,比如

我是否使用了一些阻止行号输出的标志组合?

0 投票
2 回答
1374 浏览

android - Android:Memory Analyzer eclipse 插件(1.1)在按下 ddms“hprof dump”时不会自动启动

旧版本 1.0 过去可以正常工作。但是在更新到 1.1 后,它提供了一个保存 hprof 文件的选项。如何在 Eclipse 中打开该文件?

Eclipse 版本是 Helios 3.6.2

0 投票
1 回答
7513 浏览

java - 解析堆转储文件

我有一个应用程序,显然我创建了太多对象,我收到以下消息:

java.lang.OutOfMemoryError: Java heap space Dumping heap to java_pid2468.hprof ... Heap dump file created [1087703293 bytes in 18.711 secs] 线程“main”中的异常 java.lang.OutOfMemoryError: Java heap space

但是我在MAT中安装了插件,我想看看我构建了多少个对象,哪些对象占用了最多的内存。但是,当我想解析 hprof 文件时,我收到此错误消息:

在以下期间发生内部错误:“从 'C:\Users\sekulicd\workspace\Csv_validation_MyIsam\java_pid2468.hprof' 解析堆转储”。Java 堆空间

hprof 文件的大小为 1,087,703,293 字节,我需要这些问题的答案:

  1. 由于 hprof 文件大小导致解析失败?
  2. 我可以只为那些没有发生错误“java.lang.OutOfMemoryError: Java heap space”的项目解析 hprof 文件吗?
  3. 有没有办法解析这个文件(1,087,703,293 字节)?