Devo determinare quali blocchi sono i più contesi, nel mio codice applicazione. Quali strumenti gratuiti posso utilizzare per determinare questo?Quali strumenti gratuiti sono disponibili per analizzare la contesa del blocco in java?
risposta
è possibile utilizzare jconsole o jstack sia nella directory bin del JDK. In particolare, jconsole consente di connettersi al processo e monitorare i thread, incluse le risorse bloccate, e può aiutare a identificare uno stato di deadlock.
Il JDK ha un supporto integrato - sotto unix, kill -3 il processo, sotto windows, ctrl-break. Verrà visualizzato un dump del thread completo, seguito da eventuali deadlock rilevati. Inoltre, nel dusmp di thread puoi vedere quali thread possiedono le serrature e confrontarle l'una con l'altra.
Non è necessario interrompere il processo per ottenere un dump del thread - è sufficiente eseguire jstack
Il comando kill -3 non uccide il processo. Lo segnala solo, ma il processo continuerà a funzionare. –
Puoi anche visualizzarlo nel debugger di Eclipse. Nella vista Debug, usa il piccolo menu a triangolo nella barra degli strumenti della vista per attivare "Java-> Mostra monitor".
Quando si sospetta un deadlock, mettere in pausa l'applicazione (selezionare l'applicazione nella vista di debug e premere il pulsante di pausa sulla barra degli strumenti della vista di debug) e se c'è un deadlock, i thread di blocco diventeranno rossi. Se si espandono questi thread è possibile vedere la contesa del blocco.
Se si possiede il codice, è possibile creare/cercare un'implementazione di blocco che raccolga statistiche sulla contesa. Altrimenti, prova gli strumenti suggeriti negli altri post.
hai qualche esempio di questo tipo di implementazione (es. Codice java) – Rhubarb
- 1. Quali strumenti sono disponibili per la documentazione dei plugin jQuery?
- 2. Quali strumenti sono disponibili per visualizzare quali metodi chiamano altri metodi per il codice Java?
- 3. Quali sono gli strumenti di formattazione SQL gratuiti?
- 4. Quali strumenti sono disponibili per decodificare un database SQLite?
- 5. Quali strumenti sono disponibili per il refactoring di Ruby?
- 6. Quali strumenti sono disponibili per testare le prestazioni dell'istruzione SQL?
- 7. Quali parser Java standalone sono disponibili?
- 8. Come misurare la contesa di mutex?
- 9. Quali strumenti sono disponibili per la documentazione di auto-produzione per un'API REST scritta in Flask?
- 10. - Quali opzioni sono disponibili?
- 11. Attributi del nodo Chef. Quali sono disponibili?
- 12. Quali strumenti sono disponibili per aggiungere la localizzazione a un progetto ASP.NET?
- 13. Quali driver MySQL sono disponibili per node.js?
- 14. Quali strumenti/framework per lo sviluppo comportamentale (BDD) sono disponibili per Microsoft Stack?
- 15. Quali strumenti sono disponibili per esportare un notebook ipython in un file PDF?
- 16. Quali operatori matematici sono disponibili in metaprogrammazione
- 17. Eventuali strumenti gratuiti per la produzione di app flash?
- 18. Quali ganci sono disponibili in jQuery?
- 19. Strumenti open source o wireframe gratuiti
- 20. Sono disponibili strumenti di parser PHP DocBlock?
- 21. Quali add-on/utilità sono disponibili per TFS?
- 22. Quali plug-in vim sono disponibili per Eclipse?
- 23. Quali strumenti emacs sono disponibili per il programmatore Perl? Come installarli?
- 24. Quali strumenti sono disponibili per documentare uno schema di database legacy (PDF, DOC, HTML, RTF)
- 25. Quali nuove funzionalità del browser sono disponibili oggi?
- 26. Quali segnali Process.kill sono disponibili su Windows?
- 27. Quali framework di test unitari sono disponibili per l'assembler x86?
- 28. Quali sono i buoni Podcast SQL disponibili?
- 29. Quali sono alcuni strumenti per lo storyboard di un'applicazione, inclusa la GUI?
- 30. Quali librerie di oggetti di simulazione sono disponibili per D?
Penso che la domanda si riferisca ad alcune statistiche sul conflitto di blocco durante l'esecuzione dell'applicazione - che sono i blocchi attivi nel sistema. – akarnokd