Per il ottenre la memoria utlizzata ho usato la classe Runtime, in questo modo:
codice:
long used = runtime.totalMemory()-runtime.freeMemory();
a mio parere però, in questo modo si conosce l'utilizzo di memoria nel momento in cui si effettua la chiamata e non il massimo utlizzo durante tutta l'esecuzione dell'applicazione.
Per quanto riguarda il numero totale di istruzioni eseguite, in che modo la classe Class può essermi utile?
Attualmente sto utlizzando questa tecnica:
codice:
long start = System.nanoTime();
/* codice dell'applicazione.... */
long elapsed = System.nanoTime()-start
in questo modo ricavo il tempo trascorso in nanosecondi ( in maniera molto precisa) e da li riesco a ricavare il numero di cicli della CPU.
Ma questo tempo trascorso (oltre a non darmi un numero di istruzioni effettuate) non tiene conto solo dell'applicazione che voglio monitorare, ma è influenzato dalle altre applicazioni che girano nello stesso momento sulla CPU. Quindi diciamo che non è un misura molto affidabile per effettuare delle comparazioni con altre applicazioni o con varie esecuzioni della stessa applicazione.