Generated by GPT-5-mini| VisualVM | |
|---|---|
| Name | VisualVM |
| Developer | Oracle Corporation; NetBeans community |
| Released | 2007 |
| Latest release | 2.x |
| Programming language | Java |
| Operating system | Cross-platform |
| Platform | Java SE |
| License | GPLv2 with Classpath Exception / CDDL |
VisualVM
VisualVM is a Java-based profiling and monitoring tool for HotSpot JVM instances, designed to inspect runtime behavior, diagnose performance issues, and analyze memory and CPU usage. It integrates diagnostic technologies from the Java Platform, Standard Edition and the NetBeans ecosystem to provide process discovery, heap analysis, sampling, and thread inspection for local and remote JVMs. VisualVM is commonly used alongside Oracle Corporation tooling, NetBeans IDE workflows, and enterprise monitoring stacks in production troubleshooting scenarios.
VisualVM aggregates information about Java applications running on the HotSpot JVM, exposing metrics such as heap usage, garbage collection, thread states, and CPU sampling. It surfaces data from technologies like the Java Virtual Machine Tool Interface used in OpenJDK and management APIs exposed by Oracle Corporation Java distributions. VisualVM launched as part of the GlassFish and NetBeans toolchains and later evolved under community stewardship with contributions from organizations like Red Hat and projects related to Apache Software Foundation ecosystems.
VisualVM provides live monitoring, heap dump analysis, thread analysis, CPU and memory profiling, and integration with JVM diagnostic commands. Key capabilities include: - Process discovery and attach for local JVMs and remote JVMs over JMX, useful when coordinating with Kubernetes deployments, Docker containers, or remote Amazon Web Services instances. - Heap dump browsing and histogram comparison to identify leaked objects and referent chains, interoperable with tools from Eclipse Foundation projects and JetBrains ecosystems. - CPU and memory sampling and profiling to find hot methods and allocation sites, complementing profilers from Oracle Corporation and commercial tools such as those produced by YourKit and JProfiler. - Thread dump capture and visualization to diagnose deadlocks and contention, which can be correlated with incident data from platforms like JIRA or PagerDuty.
VisualVM is implemented in Java and built on the NetBeans Platform, leveraging modularity from the NetBeans application framework. Core components include: - A monitor layer that connects to the HotSpot JVM via JMX and JVM attach APIs implemented in OpenJDK. - Profiling engines that use sampling and instrumentation techniques compatible with the Java Instrumentation API specified by Oracle Corporation. - Heap analysis modules that parse hprof-style dumps produced by the JVM and integrate with parsers used in Eclipse Memory Analyzer workflows. - A plugin manager based on NetBeans Update Center architecture that allows extensions to register UI modules and background services discovered by the NetBeans Platform.
VisualVM runs on any platform supporting the Java SE runtime and can be started from a Java installation or bundled distribution. Typical usage patterns: - Attach to a running JVM discovered via the attach API to inspect live metrics, or connect to remote JVMs by configuring JMX service URLs and proper authentication per Oracle Corporation JMX conventions. - Capture heap dumps or thread dumps at moments of interest and open them in the VisualVM heap browser for dominator tree and retained size analysis; such dumps are often correlated with bug reports filed in Bugzilla or GitHub issue trackers. - Configure profiling sessions with sampling interval, depth, and filters; store snapshots for offline comparison used in performance regressions tracked in Apache JMeter or continuous integration systems like Jenkins. - Tune VisualVM JVM options and memory settings when running on constrained hosts provisioned by Amazon Web Services or Google Cloud Platform.
VisualVM supports plugins to extend functionality, leveraging the NetBeans module system. Popular plugin types: - Integrations that export VisualVM profiles to external systems such as Grafana or Prometheus via exporters. - Profiling enhancements from third parties like IntelliJ IDEA plugin ecosystems and connectors to APM vendors. - Heap analysis and visualization improvements that reuse work from Eclipse Memory Analyzer and third-party visualization libraries. Plugins are distributed through the VisualVM Update Center or community repositories maintained on platforms such as GitHub and collaborative foundations including Apache Software Foundation projects.
VisualVM originated in the mid-2000s as a component of the NetBeans and Sun Microsystems toolchain, later maintained by Oracle Corporation after the Sun Microsystems acquisition. Development subsequently transitioned to community-driven maintenance with contributions from NetBeans and independent developers. The software is distributed under open-source licenses compatible with Java ecosystems, historically involving the GNU General Public License with the Classpath Exception and the Common Development and Distribution License. The project has seen releases coordinated by community maintainers and hosted resources on platforms like GitHub and NetBeans infrastructure.
VisualVM has been widely cited as a free, lightweight diagnostic tool in JVM ecosystems, recommended in technical documentation from Oracle Corporation, Red Hat, and many community blogs. Alternatives and complementary tools include commercial profilers and profilers from organizations such as JetBrains (YourKit, JProfiler references), open-source options like Eclipse Memory Analyzer, and monitoring stacks built around Prometheus and Grafana. For cloud-native observability, platforms like Datadog, New Relic, and Dynatrace present more integrated APM solutions, while VisualVM remains valued for ad hoc inspections and offline heap analysis.
Category:Java development tools