title: find slow-running code
body: <p>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.</p>
  
  <p>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.</p>
  
  <p>Due to budgeting constraints, I'm only likely to be able to use free tools, or tools that offer a trial period.</p>