I've inhereted a multi-threaded Java web app and been tasked with speeding it up. I tried figuring out which parts are responsible for the performance problems by adding logging statements, but this isn't working out.
So, I'm now looking for a tool (a profiler I guess), than can help me to find the code that's responsible for the performance problems. Ideally I'd like to be able to to start the app, execute a few actions, then look a report that shows me where the execution time was spent by class/method.
Due to budgeting constraints, I'm only likely to be able to use free tools, or tools that offer a trial period.