Classmexer.

Un semplice agente di strumentazione che può essere collegato a un programma Java e consente a questo programma di interrogare l'utilizzo della memoria di oggetti
Scarica ora

Classmexer. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Freeware
  • Prezzo:
  • FREE
  • Nome editore:
  • Neil Coffey
  • Sito web dell'editore:
  • http://www.javamex.com

Classmexer. Tag


Classmexer. Descrizione

Un semplice agente di strumentazione che può essere allegato a un programma Java e consente a questo programma di interrogare l'utilizzo della memoria degli oggetti ClassMexer è un semplice agente di strumentazione Java che fornisce alcune richieste di comodità per misurare l'utilizzo della memoria degli oggetti Java da una domanda. Il progetto prevede attualmente le seguenti chiamate statiche della classe di memorutil, all'interno del pacchetto com.javamex.classmexer: Public Static Long MemorySageOf (Object Obj) Public Static Long DeepmemoryusageOf (Object Obj) Public Static Long DeepmemoryusageOf (Object obj, visibilitàFilterFilterFilter) Pubblico Static Long DeepmemoryusageofALL (collezione OBJS) Statico Public Long DeepmemoryusageofALL (collezione Objs, visibilitàFilter RiferimentoFilter) Installazione di ClassMexer nel tuo progetto Configurare il progetto per utilizzare ClassMexer: * per la compilazione: include classmexer.jar in il tuo progetto, o assicurati di includerlo nel classpath se si sta compilando dalla riga di comando; * per l'esecuzione: aggiungi -javaagent: classmexer.jar al comando Java utilizzato per avviare la tua applicazione, assicurandosi che una copia del barattolo è nella directory di lavoro (la directory da cui si avvia l'applicazione, non necessariamente la stessa del classpath). Nel tuo codice sorgente, è necessario importare la classe com.javamex.classmexer.memoryutil.come utilizzare MemoryUTIL CALDE La chiamata più semplice fornita dalla classe di MemoryUTIL restituisce il numero di byte occupati da un oggetto, non incluso alcun oggetto che si riferisce a: import com.javamex.classmexer.memoryutil; ... lunghi nobytes = memorutil.memoryusageof (olobject); questo metodo è essenzialmente un wrapper attorno al metodo JDK Strumentazione.GetObjectSize (). Come tale, non consente sempre un risultato molto rilevante. Di solito è più interessante interrogare l'utilizzo della memoria "Deep" di un oggetto, che include "Subobjects" (oggetti riferiti da un determinato oggetto). Ad esempio, se proviamo a interrogare l'utilizzo della memoria di una stringa usando MEMORYUSAGEOF (), non compreremo effettivamente i caratteri della stringa, perché vengono memorizzati in un array di char (un oggetto separato) a cui si fa riferimento dalla stringa oggetto stesso. Le chiamate Deepmemoryusageof () sono progettate per girare questo problema. Includono ricorsivamente "subibelli" o oggetti di cui agli oggetti "principali" passati. Quindi per ottenere l'utilizzo totale della memoria di una stringa, possiamo usare: stringa str = "qualche stringa o altro"; lunghi nobytes = Memorutil.deepmemoryusageof (STR); per impostazione predefinita, il metodo DeepMemoryusageOf () attraverso riferimenti non pubblici (cioè oggetti con un riferimento privato, protetto o privato di pacchetti). Per molti oggetti come stringhe, questo è il tipo appropriato di riferimento da seguire: in effetti, includiamo solo quegli oggetti che in un certo senso "appartengono" all'oggetto principale (anche se il criterio non è perfetto: un oggetto potrebbe ancora avere un riferimento privato ad un oggetto "globale"). Possiamo cambiare quali riferimenti sono attraversati passando in una visibilità facoltativaFilter: import com.javamex.classmexer.memoryutil; import com.javamex.classmexer.memoryutil.visibilityFilter; .. lunghi nobytes = memorutil.deepmemoryusageof (olobject, visibilityfilter.all); In questo esempio, tutti i riferimenti saranno attraversati nel conteggio dell'utilizzo della memoria dell'oggetto. Altre opzioni attualmente supportate non sono None e Private_only.Total Memory Memory Uso di più oggettiI Metodi DeepMemoryusageOfALL () Scatta una raccolta di oggetti e aggiungono l'utilizzo totale della memoria di tutti gli oggetti nella raccolta fornita. Se non viene fornito nessuna visibilitàFiltro, il valore predefinito non è_Public come sopra. Questi metodi assicurano che nessun oggetto sia considerato più di una volta, anche se gli oggetti hanno più riferimenti. (Le chiamate a oggetti singoli fanno anche questa garanzia, poiché è ovviamente possibile per il grafico dell'oggetto che inizia con un singolo oggetto per includere alla fine includere più riferimenti allo stesso oggetto.) Requisiti: · Ambiente di runtime di Edizione standard Java 2


Classmexer. Software correlato

sconto

Un'interfaccia Python per lo sconto, il Parser di Markdown ...

124

Scarica