Java profiling tools can be great for troubleshooting complex issues in Java applications. These tools range in cost and functionality from free Java profilers that ship with the JDK to commercial software like YourKit. The biggest limitation of Java profiling tools, however, is the overhead they create on the application. Java profilers introduce latency and overhead that are unacceptable for any production application.
AppDynamics is a production-ready alternative to free Java profilers like JConsole and VisualVM. With AppDynamics, dev and ops teams can easily find and troubleshoot bottlenecks in the code without impacting the performance of the production environment.
Like Java profiling tools, AppDynamics automatically discovers and maps the application tiers that the monitored JVM interacts with, such as other application servers, web services and databases. In addition, AppDynamics gives you a breakdown of where the latency occurs in the application, allowing you to quickly locate your application bottlenecks. Most free Java profilers don't have a graphical user interface representing the application topology and response time breakdown, which makes it more difficult to easily identify where problems are occurring.
AppDynamics runs in production with less than 2% overhead on the application, which means you can leave it on all the time without worrying about impacting your end users. Most Java profilers introduce significant overhead into an application, which is unacceptable for a production environment. As a result, many organizations only use Java profiling tools when a crisis is occurring, and have no visibility into the application when it's performing normally.
Unlike free Java profilers, AppDynamics helps you understand your application as your end users experience it: through Business Transactions. By grouping user requests into Business Transactions, AppDynamics helps dev and ops teams identify and prioritize the performance bottlenecks that are affecting their end users the most. No Java profiling tools are able to provide Business Transaction context for bottlenecks, which makes it more difficult to quickly identify and prioritize problems.
With AppDynamics, you can set up alerts on application, Business Transaction and JVM metrics, so you can find and fix problems before they affect your end users. Most free Java profilers don't offer alerting, and the Java profiling tools that do use static, universal thresholds that often cause aler storms.
AppDynamics provides Java profiling capabilities for all JVMs and application servers with Java 1.5 and above. This includes full framework and protocol support to give you as much visibility into your application as any free Java profiler.