Java JVM和硬件交互分析

Java JVM和硬件交互分析,java,jvm,profiling,intel,cpu-cache,Java,Jvm,Profiling,Intel,Cpu Cache,你好。 我找了一会儿,发现缺少专门的仪器。Java有很多好的、甚至免费的分析器,它们允许查看代码部分总共花费了多少时间,但不允许查看下一个任务 鉴于 一个Java多线程程序,通过misc.unsafe执行一些计算,使用一个简单的fork-join池ThreadPoolExecutor,运行在一个Oracle JVM和基于Intel Xeon的服务器类节点上。看起来没什么难的,热点很明显。我需要弄清楚是否有任何可能的优化,哪些是有希望的,哪些是潜在的评估 需要。 为此,在其他信息中,我需要一个关于

你好。 我找了一会儿,发现缺少专门的仪器。Java有很多好的、甚至免费的分析器,它们允许查看代码部分总共花费了多少时间,但不允许查看下一个任务

鉴于 一个Java多线程程序,通过misc.unsafe执行一些计算,使用一个简单的fork-join池ThreadPoolExecutor,运行在一个Oracle JVM和基于Intel Xeon的服务器类节点上。看起来没什么难的,热点很明显。我需要弄清楚是否有任何可能的优化,哪些是有希望的,哪些是潜在的评估

需要。 为此,在其他信息中,我需要一个关于硬件内部到底发生了什么的好信息。在研究开始时,我至少需要缓存未命中和内存边界开销、字节码或硬件指令的总体计时。这对于避免“勾选框”方法非常有用。为了澄清我到底需要什么,我在这里放了一个类似工具的wiki链接,我将其用于C或Fortran遗留代码(特别是简单地看一下“硬件事件采样”一段),它满足了我的所有目的


提前谢谢。

如果VTune具备您所需的一切,为什么不使用它呢?好吧,它还支持Java。我正在寻找另一种方法,同时尝试启动该捆绑包。文档中还有一个细节,似乎没有字节码-指令-cpu时钟链接,因此我只能在方法级别划分度量值(这个限制对于这个优化良好的代码来说可能太粗糙了)。请参阅,您也可以查看jit watch,以了解本机指令来自字节码和java代码。