Ho alcuni problemi nell'ottenere la dimensione di un oggetto in JVM. JDK 5 offre un'interfaccia Instrumentation
per calcolare tramite la funzione premain()
, ma non so come usarla.Esempio JVM getObjectSize
Qualcuno può aiutarmi?
Ho alcuni problemi nell'ottenere la dimensione di un oggetto in JVM. JDK 5 offre un'interfaccia Instrumentation
per calcolare tramite la funzione premain()
, ma non so come usarla.Esempio JVM getObjectSize
Qualcuno può aiutarmi?
la più semplice e la soluzione più efficace è quello di utilizzare molto piccolo sizeof biblioteca
<dependency>
<groupId>com.carrotsearch</groupId>
<artifactId>java-sizeof</artifactId>
<version>0.0.3</version>
</dependency>
è necessario utilizzare questo http://grepcode.com/file/repo1.maven.org/maven2/com.carrotsearch/java-sizeof/0.0.2/com/carrotsearch/sizeof/RamUsageEstimator.java?av=f
shallowSizeOf() metodo o sizeOf()
Questa è davvero la più semplice soluzione veloce di lavoro che ho trovato finora su questo argomento ...
Ecco la presentazione dell'autore di questa libreria: http://www.slideshare.net/DawidWeiss /sizeofobject-how-much-memory-objects-take-on-jvms-and-when-this-may-matter?ref=http://cheremin.blogspot.com/2012/05/how-much-memory-objects -take-on-jvm-and.html –
Le fonti sono qui: https://github.com/dweiss/java-sizeof –
grazie funziona – fleture
qui abbiamo un ottimo articolo di Dustin Marx che posso fare riferimento.
Si potrebbe trovare utile per utilizzare il MemoryMeasurer library, quali pacchetti di misura semplice memoria in un'API relativamente semplice. (In alternativa, si può guardare al suo codice sorgente per vedere come si utilizza la strumentazione.)
Un altro progetto open source che può essere d'aiuto è Jamm che utilizza anche un agente JVM.
È probabile che l'utilizzo di un profiler di memoria sia un modo molto più semplice per eseguire questa operazione (ovvero per cosa è stato progettato) –