Recommended Free Tools
Java garbage collection (GC) logs help you determine whether the Java heap is retaining more objects over time, how often collections run, and what pauses they cause. A high process or container memory reading alone does not prove a heap leak: first establish the JVM and collector, then compare collection trends and, if needed, inspect object-level evidence.
Start by identifying the JVM and collector
GC log syntax and diagnostic commands vary by Java version and runtime implementation. Before interpreting a log, capture the exact Java version, vendor or distribution, startup arguments, heap limits, and active garbage collector. Oracle recommends recording the Java version and JVM flags during troubleshooting: Oracle Java SE 26 Troubleshooting Guide.
- Run
java -versionin the same runtime environment as the application. - Record the JVM startup flags and configured heap limits.
- Identify the active collector from the runtime’s available diagnostic information or startup configuration.
The logging example below is documented for Oracle Java SE 24. Check the equivalent syntax and available commands for the runtime actually in use; do not assume every JVM vendor or release behaves identically.
Enable and preserve GC logs
Oracle Java SE 24 example
Oracle documents this unified logging option:
-Xlog:gc*,gc+phases=debug:gc.log
In this example, gc* enables GC-tagged messages at info level, while the exact gc,phases tags are logged at debug level. Output is written to gc.log. Oracle notes that writing to a discrete file makes logs easier to read and preserves them across restarts; log rotation can limit how much history is retained. Adapt the output location and rotation policy to the deployed JDK and operational requirements. See Oracle Java SE 24 java command documentation.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Keep enough history to compare multiple collections and, when diagnosing a trend, multiple periods of application activity. A single collection rarely answers whether memory is accumulating.
Read patterns across collections, not one high reading
Heap occupancy normally rises as the application allocates objects and falls when a collection reclaims garbage. The useful signal is what happens over repeated collections, especially after old-generation collections—not whether the heap was high at one moment.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
- Post-collection live set: compare the amount still used after old collections. A steadily rising live set is more concerning than ordinary growth between collections.
- Reclamation: note whether collections free meaningful space or repeatedly recover very little.
- Collection type and frequency: distinguish ordinary collections from repeated full or old-generation collections and note how often they occur.
- Pause time: track pauses alongside occupancy. Frequent or long pauses can be operationally significant even if they do not establish a leak.
- Other pools: where the log reports them, check old-generation and metaspace occupancy and reclamation as well as heap totals.
Oracle’s Java SE 26 troubleshooting guide advises: “Watch for a steadily increasing heap size over time that could indicate a memory leak.” A rising post-old-collection live set or repeated full collections that recover little space is a reason to investigate, not proof of a leak. See Oracle’s memory leak troubleshooting guidance.
Use object-level evidence to find what is growing
GC logs show collection behavior, but they do not identify which code is retaining objects. If the post-collection live set keeps rising, compare class histograms at different times. Oracle describes histograms as listing classes in descending size; a sequence can reveal which instance counts or sizes are increasing.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Compare class histograms
Use the JDK’s jcmd utility:
jcmd <pid> GC.class_histogram
Replace <pid> with the application process ID. Compare snapshots taken under reasonably comparable workload conditions, looking for class instance counts and sizes that grow persistently. Oracle recommends jcmd over jmap for enhanced diagnostics and reduced performance overhead, but histogram impact can still be high depending on heap size and contents. Consult Oracle’s jcmd command reference.
Capture a heap dump when a histogram is not enough
A heap dump provides an object graph that can be examined for retained objects and reference chains:
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
jcmd <pid> GC.heap_dump filename=heapdump.hprof
Oracle’s jcmd specification says heap dump generation has high impact and may request a full GC. Plan when to run it, confirm that the destination has enough space, and restrict access: heap dumps can contain sensitive application data. The same reference documents -XX:+HeapDumpOnOutOfMemoryError, which configures a dump when an OutOfMemoryError occurs. That option is a fallback for an error event, not a substitute for monitoring and planning dump storage.
Observe growth over a recording window
Java Flight Recorder (JFR) with heap statistics enabled can show object types and top growers over time. Oracle notes that heap statistics trigger an old collection at the beginning and end of the recording, allowing comparison of live-set behavior. Account for those collections when choosing the recording window and interpreting its effects. See Oracle’s Java SE 26 guidance on memory leak diagnosis.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
When process memory is high but the heap does not explain it
GC logs describe garbage collection and Java heap behavior; they do not account for every kind of process memory. If process RSS or container memory is high while heap trends do not show corresponding growth, investigate memory outside the Java heap. Potential categories include HotSpot internal native memory, direct or native-library allocations, thread stacks, mapped files, and operating-system accounting.
HotSpot Native Memory Tracking (NMT) can help examine internal JVM memory, but Oracle explicitly notes that NMT does not track allocations made by non-JVM code. Native libraries may therefore require operating-system-supported tools suited to the runtime and platform. The right procedure depends on the operating system and where the application runs; do not treat NMT as a complete accounting of process RSS. See Oracle’s memory troubleshooting guide.
Choose the next diagnostic by the question you need to answer
| Method | What it shows | Limit or operational consideration |
|---|---|---|
| GC log | Collection cadence, pauses, and heap occupancy trends | Does not identify object retainers by itself |
| Repeated class histograms | Class instance counts and sizes at snapshots; comparison can expose growing types | Impact can be high on large heaps |
| Heap dump | Detailed object graph and retention evidence | High impact; may request a full GC and create a large, sensitive file |
| JFR with heap statistics | Time-based JVM evidence and object types that grow during a recording | Heap statistics trigger old collections at recording start and end |
| NMT and operating-system tools | Native memory evidence when Java heap trends do not explain process memory | NMT covers HotSpot internal memory, not allocations by non-JVM code; OS tools depend on platform |
For command details and diagnostic cautions, see Oracle’s jcmd reference and memory troubleshooting guide.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

