VisualVM Sampling & Accuracy

2

È stato detto in altre domande che il campionamento jvisualvm funziona come uno strumento di profilazione "leggero" calcolando le metriche direttamente da Java impila i fotogrammi.

È stato quasi unanimemente d'accordo che una tale tecnica è più veloce ma non come accurata in termini di "tempi". La mia domanda: perché questo metodo non è così preciso? E che cosa non è preciso quanto (al contrario di cosa? Ci sono tecniche di profilazione più precise?)?

    
posta herpylderp 06.02.2012 - 02:46
fonte

1 risposta

1

Ci sono alcuni fattori di cui sono a conoscenza:

  1. Guarda la javadoc di System.currentTimeMillis() e nota cosa dice della granularità del sistema operativo. Per ancora più divertimento, guarda il codice sorgente di quel metodo e guarda come si arrotonda al millisecondo. Una regola simile si applica al supporto del nanosecondo di Java, guarda il codice sorgente per vedere come viene effettivamente utilizzato e potresti essere sorpreso.

  2. Ci sono ancora lacune in cui non ci sono API Java per misurare alcune cose, ad es. Contatori di clock su una CPU (a cui stiamo lavorando con jpcm ) e API nel GC in esecuzione.

HTH un po '.

    
risposta data 06.02.2012 - 14:52
fonte

Leggi altre domande sui tag