Frage

Ich verwende JNI, um ein Programm zu analysieren.Ich frage mich, nachdem ich JClass-Referenz erhalten habe, wie es möglich ist, die Größe der darunterliegenden Klasse zu finden?

Beispiel: Klasse CLS= env-> findklasse ("lee / boehm / test");

Von hier aus, wie kann ich die Größe der Klasse Lee.boehm.Test in Hotspots Haufen auswerten?

danke Böhm

War es hilfreich?

Lösung

hier gehst du

agent.c generasacodicetagpre.

und ./util/util.java generasacodicetagpre.

und test.java generasacodicetagpre.

gcc -i / opt / ibm-jdk-bin-1,6.0.9 / einschließen -Hared -fpic -o liagent.so agent.c

java -agentpath: ./ liagent.so test

Andere Tipps

hmmm .... Wenn Sie die Größe der Klassenbytes bedeuten, dann ja ..... Sie würden JVMTI verwenden, um die fragliche Klasse erneut zu übertragen, in der ein Klassenhook-Ereignis generiert wird, das Sie anhören, und dies könnte Ihnen dasKlassenbytes und die Größe .... Aber sie wären mit der .class-Datei auf der Festplatte identisch .... Wenn die Klasse jedoch dynamisch generiert wird und deshalb nicht nur die Größe der .class-Datei ansehen kannDiese Technik würde funktionieren ..... Ich kann den Code für Sie schreiben, wenn Sie möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top