Tag: profiling

jVisualVM的内存检查器中“保留大小”是什么意思?

摘要选项卡上的Jvisualvm堆转储具有按保留大小检查bigest对象的function。 保留的真正含义是什么? 如何计算和显示对象树的大小? 如果我可以在这里看到对象(10M)和它的成员对象(5M)我应该如何计算堆影响。 他们两个都花了10M或15M的堆? 为什么我看不到我们的门面巨大的应用程序对象? 谢谢。

OutOfMemoryError java堆空间分析工具

我得到一个OutOfMemoryError: Java heap space 我有什么工具可以找到根本原因吗?

限制Visual VM中的分析

我正在尝试新JDK附带的VisualVM程序。 我正在对它进行分析,并试图仅在特定包中的方法上分析CPU。 我在“仅配置文件类”中添加了以下内容: jig.* 夹具是我想要的包装。 不幸的是,我得到了不在该包或任何子包中的其他方法的结果。

Netbeans JDK Calibration 8.1

如何使用Netbeans 8.1进行JDK校准。 我用谷歌搜索了一下,在这里找到了这个链接。 它说“从主菜单中选择配置文件>高级命令>运行Profiler校准 但我找不到它,我的菜单中没有高级命令。

在Java中推断方法的堆栈内存使用

我正在尝试确定每个方法在运行时消耗的堆栈内存量。 为了完成这项任务,我设计了这个简单的程序,只强制StackOverflowError , public class Main { private static int i = 0; public static void main(String[] args) { try { m(); } catch (StackOverflowError e) { System.err.println(i); } } private static void m() { ++i; m(); } } 打印一个整数,告诉我m()被调用了多少次。 我手动将JVM的堆栈大小( -Xss VM参数)设置为不同的值(128k,256k,384k),获得以下值: stack i delta 128 1102 256 2723 1621 384 4367 1644 delta由我计算,它是最后一行i和当前行之间的值。 […]

为什么park / unpark有60%的CPU使用率?

最近,我们开始使用YJP 11.0.9对我们的应用程序(基于XMPP的聊天服务器)进行压力测试。 在我们的测试期间,我们发现了以下奇怪 采样显示sun.misc.Unsafe.unpark(Object)占用了60%的CPU。 对于同一个应用程序跟踪显示LockSupport.park(Object)占用了52%的CPU。 我做了多次测试以确认结果,每次我得到类似的结果。 我无法理解为什么unpark应该花费60%的时间以及为什么跟踪显示完全相反的结果。 有人可以帮助我理解这些结果。 我在这里错过了什么吗? 环境: java -version java版“1.6.0_31” Java(TM)SE运行时环境(版本1.6.0_31-b04) Java HotSpot(TM)64位服务器VM(内置20.6-b01,混合模式)

如何获取Java分析转储以在mac上创建火焰图?

我想从我的Java应用程序中收集堆栈跟踪,以创建用于分析的CPU Flame Graphs 。 这与此问题非常相似: 如何在每个样本中从分析器获取完整的堆栈转储以用于火焰图? 有2个不同之处: 我使用Java代码,我需要Java堆栈跟踪 我正在使用Mac(这意味着OSX上没有pref和AFAIK dtrace不支持jstack扩展)。 我已经尝试过轻量级java-profiler和Honest profiler ,但它们似乎都不适用于Mac。 我也试过VisualVM ,但我无法让它产生我需要的堆栈跟踪转储。 对我来说,第一个prioirty是从Java堆栈跟踪生成的火焰图,但是拥有本机调用堆栈也很棒,因为它可以让我解决I / O问题(甚至可能生成热/冷火焰图 )。

使用Spring AOP进行方法分析(基本执行时间)

我正在寻找一个function或软件,他将允许我轻松地分析我的方法执行时间,并选择通过包filter分析的内容。 我知道,它是分析器101.我使用TPTP分析器。 但我对它并不满意。 坦率地说,我只是不明白它是如何工作的,当我描述我的应用程序(以剖析模式启动服务器)时,它将永远无所事事。 (好吧,不是我的期望:执行时间的简单输出) 所以我用系统时间自己进行分析(在方法的开头和结尾添加一行)。 也不是那么坏。 我的问题是:我想测量使用Spring AOP进行方法调用之前和之后的系统时间,你能给我指点吗? 这是一个好/坏的主意? 代码库非常大,我们没有很多unit testing,难道不是“危险”吗? 我不是要求代码,我想我可以用这种链接自己做: http : //static.springsource.org/spring/docs/2.5.x/reference/aop.html 但如果你有一个很好的教程(以前从未做过AOP,只知道这个概念),我就接受了。

JVM内存:为什么任务管理器上的内存与JProbe(或JConsole工具)不同

我遇到的问题是我的应用程序使用的内存只有100MB,之后它减少了50MB,但是在Window Task Manager上显示150MB并且始终保持或增加但不减少,我们如何减少任务管理器上的内存(私有工作集)?

在分析的背景下,什么是安全点和安全点轮询?

我面临的情况是我没有看到VisualVM应用程序没有记录某些方法调用。 想找出原因并在SO上遇到这个答案 。 第三点提到了采样方法的潜在问题(这是我看到的唯一选项,可能是因为我正在进行远程分析)。 它提到代码中的安全点和代码本身的安全点轮询 。 这些术语是什么意思?