OpenJDK JRE vs HotSpot JVM? ObjectSizeCalculator only works with HotSpot

0

There is a class in the java ext classes that computes object sizes but it only works with the HotSpot JVM. jdk.nashorn.internal.ir.debug.ObjectSizeCalculator
https://stackoverflow.com/a/39406536
https://stackoverflow.com/questions/52353/in-java-what-is-the-best-way-to-determine-the-size-of-an-object#comment84178865_39406536

What is the status of HotSpot? It took me a while to figure out that the error mesage was due to the JVM version:
java.lang.NoClassDefFoundError: Could not initialize class jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$CurrentLayout

This would be very useful with spark RDDs during debug...

已提问 6 年前417 查看次数
1 回答
0

I'm still curious about HotSpot but a different way to solve this is something like this using openjdk jol project:

import org.openjdk.jol

val l = List(1,2,3)

// Convert Any into AnyRef: https://stackoverflow.com/a/23892913
val jo = l.asInstanceOf[AnyRef]
val gl = jol.info.GraphLayout.parseInstance(jo)
gl.totalSize()
已回答 6 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则