クラス A の 1 つのインスタンスのサイズを測定しようとしました。
package pkg;
class A {
private int i;
}
しかし、JOL を使用した結果は 16 バイトでした:
pkg.A object internals:
OFFSET SIZE TYPE DESCRIPTION VALUE
0 12 (object header) N/A
12 4 int A.i N/A
Instance size: 16 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total
このテストに使用した完全なコードは次のとおりです。
package pkg;
import org.openjdk.jol.info.ClassLayout;
import static java.lang.System.out;
public class Main {
public static void main(String[] args) throws InterruptedException {
A a = new A();
out.println(ClassLayout.parseClass(A.class).toPrintable());
}
}
class A {
private int i;
}
このツールを誤用したり、その結果を誤解したりしましたか? 両方のツールで同じ結果が得られることを期待していました。