从JAR记录系统度量



假设有一个应用程序x使用外部jar y。

x使用CCD_ 1来记录度量,y也使用。

我想看看是否可以记录只针对jar的系统指标,即jar使用了多少gc循环?

使用system.gc,我们可以了解整个应用程序在该主机上使用了多少个周期,但具体的jar呢?

请澄清是否有人知道。

组成应用程序的所有类都从同一个内存"池"中分配内存。虽然JVM可以知道失败(并导致GC(的内存分配请求的站点(例如类/方法/行(,但它不知道或不知道类对GC"负责"。

可能是x已经分配了eden中99.99%的可用内存,然后y中的一些代码出现,试图分配几个字节,随后发生GC。y真的对GC负责吗?

如果你想确定哪些类负责使用大量堆的分配,你需要使用某种探查器来运行你的代码。首先你想找到哪些类被分配得最多,然后你想知道这些类是从哪里分配的。据推测,您将能够将分配方法的名称从后面映射到声明该方法的jar。

最新更新