Voglio filtrare quali classi sono state create in cpu in Java VisualVm (versione 1.7.0 b110325). Per questo, ho provato in Profiler -> Impostazioni -> Impostazioni CPU per impostare "Solo classi del profilo" al mio pacchetto sotto test, che non ha avuto alcun effetto. Poi ho cercato di sbarazzarmi di tutte le classi java. * E sun. * Impostandole in "Do not profile classes", che non ha avuto alcun effetto.Il filtraggio delle classi per la profilazione della cpu funziona in Java VisualVM?
È semplicemente un errore? O mi sta sfuggendo qualcosa? C'è una soluzione? Voglio dire altro che:
- pagare per un profiler meglio
- facendo campionamento a mano (vedi One could use a profiler, but why not just halt the program?)
- passare alla visualizzazione delle chiamate albero, che non va bene in quanto solo la vista Profiler mi dà le percentuali di CPU consumata per metodo.
Voglio farlo principalmente per ottenere percentuali a metà strada corrette della CPU consumata per metodo. Per questo, ho bisogno di liberarmi delle misurazioni fastidiose, ad es. per sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
(circa il 70%). Molti utenti sembrano avere questo problema, vedi ad es.
- Java VisualVM giving bizarre results for CPU profiling - Has anyone else run into this?
- rmi.transport.tcp.tcptransport Connectionhandler consumes much CPU
- Can't see my own application methods in Java VisualVM.
È il tuo scopo eseguire il codice il più velocemente possibile? o solo per ottenere delle percentuali, indipendentemente da cosa significano? Il "tempo", come è comunemente usato, è altamente ambiguo. –
Sì, il mio obiettivo principale è rendere il codice più veloce. Vorrei anche avere una stima su quanto del codice dovrebbe cambiare. Quindi voglio avere una panoramica generale di tutti i punti caldi e della loro gravità. Penso che i risultati di VisualVm sarebbero accettabili per questo nonostante l'uso del tempo di parete - se solo quelle poche sole. * E java. * Classi non rovinerebbero tutte le statistiche. – DaveFar