Sto tentando di monitorare/profilare selettivamente un'applicazione Java quando vengono soddisfatte determinate condizioni di runtime. Sono già in grado di scaricare l'heap al volo usando lo HotSpotDiagnosticMXBean, che è stato abbastanza utile.Avvio del profiler Java HPROF al volo
Attualmente sto cercando di fare qualcosa di simile con il profilo della CPU, sperando di indirizzare in modo più efficace percorsi di codice specifici. Ho una certa esperienza con la riga di comando HPROF interface e il profiler NetBeans, ma entrambi devono essere avviati in anticipo.
C'è un modo per attivare il profiler HPROF in modo programmatico da un'applicazione in esecuzione? Preferibilmente qualcosa che mi permetterebbe di avviare e fermare il processo di profilazione a piacimento?
Purtroppo, questa sembra essere la risposta giusta, almeno per quanto riguarda HPROF ... +1 – thkala
Non sono convinto che questa sia una buona risposta. Dipende più precisamente da cosa si sta occupando la domanda originale. La documentazione citata dice che l'agente di definizione dei profili deve iniziare prima che JVM esegua qualsiasi codice ... non dice _ che la profilazione deve iniziare prima che il codice inizi l'esecuzione. Il profiler può iniziare e il _profiling_ può iniziare in seguito. Un modo programmatico per controllare quando inizia la profilatura sarebbe molto utile. Puoi dire che _profiling_ deve iniziare prima dell'esecuzione di qualsiasi codice? E citare un riferimento? – Jason