Amazon CodeGuru Profiler vs VisualVM
Amazon CodeGuru Profiler
aws.amazon.comVisualVM
visualvm.github.ioSide by side
| Figure | Amazon CodeGuru Profiler | VisualVM |
|---|---|---|
| Price from | $0.01/mo | Free |
| Free plan | Yes | Yes |
| Free trial | Yes | — |
| Open source | — | — |
| Web | Yes | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 3 | 1 |
| Spec score · Profiling Software | 8.6 (#2) | 7.4 (#23) |
| Purpose | Amazon CodeGuru Profiler collects runtime performance data from live applications and provides recommendations to improve performance and find CPU bottlenecks. | VisualVM integrates command line JDK tools with lightweight profiling for Java application troubleshooting in development and production. |
Plans
Amazon CodeGuru Profiler
- Amazon CodeGuru Profiler Free TierFree
- Amazon CodeGuru Profiler on AWS Lambda$0.01 a month
- Amazon CodeGuru Profiler on EC2, ECS, EKS, and AWS Fargate$0.01 a month
In their own words
Amazon CodeGuru Profiler
Amazon CodeGuru Profiler collects runtime performance data from live applications and recommends ways to improve performance and find CPU bottlenecks. It is designed for continuous profiling of production applications with minimal overhead. Interactive flame graphs show CPU and latency analysis, including which code paths use the most resources. Machine learning recommendations identify expensive methods and explain their cause, impact, and possible resolution.
The service can detect anomalies in application profiles and, when configured, send an Amazon SNS notification for a new anomaly. It supports Java, JVM languages such as Scala and Kotlin, and Python 3.6 or later. Java and other JVM languages can be profiled for CPU and heap summary; Python profiling covers CPU wall-clock time. Applications may run on EC2, ECS, EKS, Fargate, Lambda, or on premises. The agent can be enabled in JVM applications from the command line or application code and is also used for Lambda applications. An AWS account is required, with IAM permissions controlling access. The agent collects stack traces, not parameter names or values, variable values, or application data.
VisualVM
VisualVM is a free standalone tool for troubleshooting Java applications in development and production. It combines JDK command-line tools with monitoring for CPU use, garbage collection, heap and metaspace memory, loaded classes, and running threads. Sampling and instrumentation profilers help analyze performance and memory use. For diagnostics, it can capture thread dumps, browse heap dumps, analyze core dumps, and save application data for offline review. VisualVM can list remote Java applications when jstatd runs on the remote host, or connect to applications manually through JMX. Official and third-party plugins extend the tool, and a Security plugin provides a GUI for SSL/TLS settings. The site documents integrations or launchers for Eclipse, IntelliJ IDEA, and Visual Studio Code, plus a third-party NetBeans profiler. It runs on Windows, Linux, and macOS and is distributed as a ZIP archive and a macOS application bundle. The download page lists Oracle JDK and OpenJDK versions 8–26 and GraalVM versions 19–JDK 26. Some third-party plugins may not work after changes introduced in VisualVM 2.0.