Sto scrivendo un'implementazione dell'algoritmo utilizzando Java. Fino a OS X 10.7, ho usato lo Shark Profiler per profilare la mia implementazione, che ha funzionato piuttosto bene. Tuttavia, i nuovi strumenti non trovano più i nomi delle procedure. Ho già provato a eseguire l'applicazione java con gli argomenti VM per lo shark (vale a dire -agentlib: Shark), ma sono sconosciuti a 10.7 e non sono riuscito a trovare un agentlib simile per gli strumenti.Mancanti nomi di procedure JAVA in Time Profiler, Instruments, OS X
Qualche idea su come posso allegare i nomi delle procedure ai nomi dei simboli (che sono alcuni numeri esadecimali) negli Insturments? Sto usando Eclipse Indigo, se questo fa alcuna differenza.
Grazie!
Modifica: Finora, non è cambiato nulla con OS X Mountain Lion.
Edit # 2: Un aggiornamento da uno sviluppatore tramite bug giornalista di Apple (?):
dtrace sostegno ha avuto per Java stack in punti in passato, anche se onestamente non poteva dire se il supporto è stato mantenuto. Potrebbe essere una valida soluzione alternativa per ciò che stai cercando di misurare, che a questo punto non è una priorità per gli strumenti di performance. Puoi iniziare con lo script D in /usr/bin/cpu_profiler.d e modificarlo per raccogliere anche il jstack.
Modifica # 3: Va bene, dopo qualche discussione in più si scopre che lo stesso sviluppatore non sapeva da dove provenisse quella sceneggiatura. Apparentemente, il profiler temporale in Instruments non usa comunque DTrace, quindi l'unica opzione rimasta è scrivere il nostro script o strumento DTrace.
Hai ragione, e mi scuso. Non sono sicuro da dove venisse quella sceneggiatura, e quando l'ho guardata attentamente, non ci sono azioni jstack, quindi non è quello che vuoi comunque. Sembra che l'unica opzione di profilazione java che posso offrirti sia DTrace. DTrace ha un provider di profili e un'azione jstack che raccoglie gli stack java. È possibile utilizzare "aggregati" per determinare le tracce di stack più pesanti e tutto ciò funziona dalla riga di comando. La documentazione di DTrace è gestita principalmente da Sun e vorrei indirizzarti a qualsiasi esercitazione DTrace poiché la maggior parte copre il provider di profili.
Nonostante ciò che la gente dice online, Instruments non usa DTrace per tutto, in particolare la profilazione del tempo, quindi non posso offrirti una soluzione rapida nell'interfaccia utente di Instruments.
Grande, grazie. Spero che questo venga risolto presto, anche se il bug è in circolazione da un po 'di tempo. Presenterò un bug report. – HdM
Quindi, ho ricevuto un aggiornamento da uno sviluppatore che legge quanto segue: "dtrace ha avuto supporto per stack Java in punti in passato, anche se onestamente non potevo dire se il supporto è stato mantenuto. Può essere una soluzione valida per quello che stai cercando di misurare, che a questo punto non è una priorità per gli strumenti di performance. Potresti voler iniziare con lo script D in /usr/bin/cpu_profiler.d e modificarlo per raccogliere anche il jstack ". – HdM
Sarei molto interessato a sapere se tutto funziona. –