Non so molto sugli strumenti di profilatura, quindi non ho intenzione di raccomandare uno strumento di profilazione.
Invece, quello che vorrei fare è usare AspectJ per inserire le dichiarazioni di registrazione (Log4j) nel mio codice. Se si è a conoscenza di determinate aree che si desidera monitorare, è sufficiente iniettare il log in quei punti specifici. Altrimenti, se vuoi vedere tutto, puoi semplicemente generalizzare le tue scelte e iniettarle ovunque.
Raccogliere i registri per una settimana e quindi cercare ciò che potrebbe comportarsi "in modo irregolare". Questi file di registro sarà probabilmente piuttosto lunga a seconda di ciò che si decide di accedere, quindi potrebbe essere necessario utilizzare alcuni file di analisi per raccogliere informazioni come:
- # di chiamate di ciascun metodo
- tempo tra alcune chiamate di metodo
- sono sicuro che si può pensare agli altri in base a conoscere le specifiche della vostra applicazione
confrontare questi numeri a partire dall'inizio della settimana con quelli in cui le immersioni prestazioni. Se stai ottenendo risultati di prestazioni notevoli, allora immagino che questi saranno ovviamente riflessi in file di registro di questa natura.
Questo può essere un po 'più di lavoro che eseguire uno strumento di profiling fuori dalla scatola, ma è piuttosto flessibile e può essere una buona esperienza di apprendimento se prima non hai fatto molto con AspectJ.