我有一个我想分析的HotSpot JVM堆转储.VM运行时-Xmx31g,堆转储文件大48 GB.
jhat,因为它需要大约五倍的堆内存(在我的情况下将是240 GB)并且非常慢.ArrayIndexOutOfBoundsException在分析堆转储几个小时后崩溃.还有哪些其他工具可用于该任务?一套命令行工具是最好的,包括一个程序,它将堆转储转换为高效的数据结构进行分析,并与其他几个处理预结构化数据的工具相结合.
我正在使用以下命令创建堆转储:
jmap -dump:file=DumpFile.txt <process-id>
Run Code Online (Sandbox Code Playgroud)
我打开了生成的文件--DumpFile.txt,但它不是可读格式.所以,请让我知道如何分析生成的文件中的数据.
我经常使用VisualVM运行Java应用程序,但需要X才能在计算机上运行
我知道我可以通过管理端口连接,但这将是一个离线采样分析,这对我来说是不够的.
所以我正在寻找一种解决方案,我可以从命令行分析正在运行的Java应用程序的方法的CPU使用情况.这对我来说足以在服务器上收集数据,然后可以在不同的机器上分析收集的数据.
更新:
看来我需要更加具体.我想从命令行分析正在运行的Java应用程序,我不想阻止它并重新运行它.
我怀疑我们的ActiveMQ连接桥有一个主要的内存泄漏 - 我们看到典型的内存泄漏模式(应用程序加载正常,如果长时间运行或在短时间内一次又一次地重新启动,则会减慢速度) .我查找了用于查找Java内存泄漏的现代最佳实践,许多开发人员似乎放弃了传统工具,如jhat/jmap,而不是新的(呃)jvisualvm.
在启动此工具(并花了几个小时阅读其教程)后,我可以为CPU和内存获取分析器快照.
我只是在这一点上陷入困境 - 如何分析这些快照来识别泄漏?关于如何使用jvisualvm来生成快照,有很多关于如何使用jvisualvm生成快照的文档,但很少有关于如何真正理解它们的文档.
提前致谢.
我正在运行Java应用程序并遇到内存不足的错误.生成.hprof文件.我该怎么用来分析文件中的内容?如何阅读该文件?有什么建议吗?
提前致谢!!!
在使用Calabash执行自动UI测试时,我需要以某种方式配置我的Android应用程序.我从网络搜索得到的是内置的Android监视器是进行分析的方法.问题是我需要导出的分析数据,最好是excel友好格式.
我需要的:
有没有办法将android监视器配置文件数据导出到文本文件或等效文件?或者我可以用除了android监视器之外的其他东西来完成 我已经看到了关于跟踪视图的一些内容,但我无法确定这是否符合我的需求.如果我错了,请纠正我.
我正在使用 6.0.20 我在服务器上运行了许多 Web 应用程序,随着时间的推移,大约 3 天,服务器需要重新启动,否则服务器崩溃并变得无响应。
我有以下 JVM 设置:
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=c:\tomcat\Websites\private\mydomain\apache-tomcat-6.0.20\logs
Run Code Online (Sandbox Code Playgroud)
这为我提供了一个 hprof 文件,我使用 Java VisualVM 加载了该文件,该文件标识了以下内容:
byte[] 37,206 Instances | Size 86,508,978
int[] 540,909 Instances | Size 55,130,332
char[] 357,847 Instances | Size 41,690,928
Run Code Online (Sandbox Code Playgroud)
列表还在继续,但我如何确定导致这些问题的原因?
我正在使用 New Relic 来监控 JVM,似乎只出现了一个错误,但它是一个重复出现的错误,org.apache.catalina.connector。客户端中止异常。是否有可能在用户会话中止时,创建的任何数据库连接或变量都没有关闭,从而成为孤立的?
有一个函数在每个 Web 应用程序中都被大量使用,不确定这是否与泄漏有关:
public static String replaceCharacters(String s)
{
s = s.replaceAll(" ", " ");
s = s.replaceAll(" ", "_");
s = s.replaceAll("\351", "e");
s = s.replaceAll("/", "");
s = s.replaceAll("--", "-");
s = s.replaceAll("&", "and");
s = …Run Code Online (Sandbox Code Playgroud) java ×6
profiling ×4
memory-leaks ×2
android ×1
command-line ×1
jmap ×1
jvisualvm ×1
jvm ×1
memory ×1
performance ×1
tomcat ×1