<p>I'm looking for a good tool to profile a java webapp. I'd like to get performance information and memory usage if possible. </p>

<p>Any suggestions?</p>

[{'answer_id': 46659, 'author': 'jodonnell', 'author_id': 4223, 'author_profile': 'https://Stackoverflow.com/users/4223', 'pm_score': 4, 'selected': True, 'text': '<p><a href="http://www.ej-technologies.com/products/jprofiler/overview.html" rel="nofollow noreferrer">JProfiler</a> is a really good one.  It integrates with all the major IDEs and application servers.</p>\n'}, {'answer_id': 46776, 'author': 'Jim McKeeth', 'author_id': 255, 'author_profile': 'https://Stackoverflow.com/users/255', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://www.gurock.com/products/smartinspect/" rel="nofollow noreferrer">SmartInspect</a> is a profiler and logger.  Not specific to memory, but you might want to take a look.  It works with a variety of languages too, including Delphi, Java and .NET.  Includes other more advanced features.</p>\n\n<p><img src="https://i.stack.imgur.com/S0Nug.png" alt="SmartInspect architecture"></p>\n'}, {'answer_id': 46821, 'author': 'Joe Liversedge', 'author_id': 4552, 'author_profile': 'https://Stackoverflow.com/users/4552', 'pm_score': 1, 'selected': False, 'text': '<p>I\'ve used <a href="http://www.yourkit.com/" rel="nofollow noreferrer">YourKit Java Profiler 7.5</a> and was reasonably happy with it. Java has some pretty good tools included with recent releases that are worth looking into. (e.g., <code>jmap -histo &lt;pid&gt;</code>)</p>\n'}, {'answer_id': 47313, 'author': 'Andrew Harmel-Law', 'author_id': 2455, 'author_profile': 'https://Stackoverflow.com/users/2455', 'pm_score': 2, 'selected': False, 'text': '<p>I use Netbeans Profiler:</p>\n\n<p><a href="http://www.netbeans.org/images/v6/1/features/profiler-java-cut.png" rel="nofollow noreferrer">alt text http://www.netbeans.org/images/v6/1/features/profiler-java-cut.png</a></p>\n\n<p>Its free, has task based profiling, a heap walker, allows the insertion of profiling points, tracks memory usage and threading, but best of all it allows you to profile remote JVM\'s.  You can even attach to ones which are already running.</p>\n\n<p>Oh, and it works really well if you\'ve a maven build for your project too.</p>\n'}, {'answer_id': 47458, 'author': 'dlinsin', 'author_id': 198, 'author_profile': 'https://Stackoverflow.com/users/198', 'pm_score': 1, 'selected': False, 'text': '<p>I like to use <a href="http://www.eclipse.org/mat/" rel="nofollow noreferrer">SAP Memory Analyzer</a>, which is based in Eclipse. It works very well, also for large heap dumps!</p>\n'}, {'answer_id': 181786, 'author': 'kohlerm', 'author_id': 26056, 'author_profile': 'https://Stackoverflow.com/users/26056', 'pm_score': 2, 'selected': False, 'text': '<p>The <a href="http://www.eclipse.org/mat/" rel="nofollow noreferrer">Eclipse Memory Analyzer</a> is the best tool for analysing the memory usage of java applications</p>\n'}, {'answer_id': 440335, 'author': 'Thorbjørn Ravn Andersen', 'author_id': 53897, 'author_profile': 'https://Stackoverflow.com/users/53897', 'pm_score': 1, 'selected': False, 'text': '<p>For initial investigation, you can start jconsole and attach it to a running process.  This will allow you to see memory usage over time even in production, including garbage collections without the full impact of a profiler setup.</p>\n'}]
['https://Stackoverflow.com/questions/46642', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1310/']