问题标签 [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.
java - Android 上的对象分配和 String.format()
String.format()
StringBuilder
每次调用时都会创建一个对象。
String.format
考虑到 Android 上对对象分配和垃圾收集的担忧,用某种可重用的格式化程序和对象池 替换操作(特别是在日志记录操作中)是否有意义?
是否有现有的图书馆?
netbeans - 保留大小计算,包括堆栈帧变量?
我发现了大量关于“保留大小”的问题,接受的答案似乎是:
对象的保留大小是该对象从垃圾收集中保留的内存量。
现在,我一直在使用 Netbeans 分析器库(在 中完成保留大小计算)对文件中的保留大小(如此处定义)进行编程hprof
计算。工作得很好(抱歉,为简洁起见,使用了 kotlin):HprofHeap.java
sizeMap
当保留大小只有边际数量时,我注意到的是 Netbeans 仅计算不在堆栈上的对象的保留大小。因此分配给 的局部变量(在堆栈上分配)Thread
不会包含在保留大小中。
我的问题是:有没有办法让 netbeans 库将堆栈元素视为依赖对象,例如 Yourkit Profiler 的计算方式?如果上一个问题的答案是“否”,我将如何添加这样的功能?
java - java堆转储文件的大小
我的应用程序服务器正在生成大小从 2G 到 3G 不等的 .hprof 文件。为什么堆转储文件比通过 -Xmx 分配的内存大。
它们不应该等于最大堆大小吗?这是发生内存不足错误的时候。
android - 如何在 android 应用程序中找到哪些对象占用了大部分内存?
我正在尝试查看哪些对象占用了我的应用程序中的大部分内存。
使用 Android 的工作室 Android->Memory 选项卡,我可以看到内存是如何增加的,但我看不到哪些对象占用了多少内存。
我使用 DDMS 来获取 hprof,并从 Memory 选项卡中进行了 start alocation tracking 和“Dump Java Heap”。
我安装了独立垫,但是当我尝试打开 hprofs 时,我得到了两个:
打开堆转储“Snapshot_2016.01.08_19.00.05.hprof”时出错。检查错误日志以获取更多详细信息。
问题是什么?
我的 Android Studio 版本是 1.3.2
java - hprof 结果中的“accum”字段是什么意思?
当我使用选项运行 java 时:
hprof 的结果如下:
我想知道accum
归档是什么意思?
谢谢。
java - 无法在 Eclipse 内存分析器中加载 HPROF 文件
在 MAT 中加载 HPROF 文件时出现以下错误
HPROF 解析器遇到了它无法安全处理的违反 HPROF 规范的问题。这可能是由于文件截断或 JVM 中的错误造成的。请考虑在 eclipse.org 上提交错误。要继续解析转储,您可以使用 -DhprofStrictnessWarning=true 或在 Preferences > HPROF Parser > Parser Strictness 下设置严格模式。有关详细信息,请参阅内部异常。HPROF 解析器遇到了它无法安全处理的违反 HPROF 规范的问题。这可能是由于文件截断或 JVM 中的错误造成的。请考虑在 eclipse.org 上提交错误。要继续解析转储,您可以使用 -DhprofStrictnessWarning=true 或在 Preferences > HPROF Parser > Parser Strictness 下设置严格模式。有关详细信息,请参阅内部异常。堆转储记录 0x20 大小 15,93,39, 104 不是受支持的记录类型。堆转储记录 0x20 大小 15,93,39,104 不是受支持的记录类型。
更改首选项后,它会引发以下错误
在以下期间发生内部错误:“从 '/home/local/ZOHOCORP/raamesh-1460/Downloads/Rajesh/java_pid2360.hprof' 解析堆转储”。java.lang.NullPointerException
JDK版本:1.6
android - Android 堆转储太小
我正在尝试为 android 应用程序获取堆转储(大量 UI 测试与泄漏等)消耗接近 160Mb(在日志和 ddms 中看到) - 但获得只有 50Mb 大小的堆 hprof 文件。
尝试在 Android Studio 或 MAT 中打开它会导致错误:
处理 hprof 文件时出现意外错误:null
或 hprof-conv
错误:读取 M 个字节中的 N 个
android - 无法将转储 HPROF 文件从 Android Studio 转换为 MAT 格式
当我尝试将 android studio 终端中的 HPROF 文件转换为 MAT 格式时:
1) hprof-conv [-z] d:/dump.hprof d:/outfile.hprof
2) hprof-conv d:/dump.hprof d:/outfile.hprof
我有同样的答案:
用法:hprof-conf [-z] infile outfile
-z:排除非应用堆,例如 Zygote
为一个或两个文件指定“-”以使用标准输入/标准输出。
版权所有 (C) 2009 Android 开源项目
该软件是根据 Apache 许可证 2.0 版(“许可证”)许可的源代码构建的。您可以在以下网址获取许可证的副本
有关详细信息,请参阅此软件的相关通知文件。
但是 android 平台工具中不存在 hprof-conf 命令。
我该怎么做才能转换文件?