What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Azul C4 (Continuously Concurrent Compacting Collector) is a generational, pauseless garbage collector built into the commercial Azul Prime/Zing JVM. It performs marking, relocation, compaction and reference remapping while Java application threads run, using a read barrier called the Loaded Value Barrier (LVB). That design targets predictable tail latency on large heaps, but it trades some CPU, memory headroom and operational complexity for fewer garbage-collection outliers. C4 is not an upstream OpenJDK collector and should be judged with production-like allocation and traffic, not a short synthetic benchmark.

What C4 is

C4 stands for Continuously Concurrent Compacting Collector. It is Azul’s production generational implementation of the Pauseless GC approach and the default—and only—collector in Azul Zing Builds of OpenJDK, the JVM component of Azul Prime. Azul says its production implementation has shipped since 2010; the C4 paper by Gil Tene, Balaji Iyengar and Michael Wolf was published at ACM ISMM in 2011.

“Pauseless” describes the normal operating model, not a guarantee of zero application impact. C4 is designed to avoid global stop-the-world compaction pauses. Application threads can still experience the cost of read barriers, collector threads, memory-bandwidth contention, scheduling pressure, allocation stalls or exceptional recovery paths.

How C4 keeps Java threads running during collection

The Loaded Value Barrier

The Loaded Value Barrier is a read barrier inserted into interpreted and compiled Java code. When application code loads an object reference, the barrier checks whether the reference is current and, when necessary, finds the object’s relocated address. This lets C4 move objects while mutator threads continue to use them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • 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.

The same mechanism supports the collector’s concurrent marking, relocation/compaction and remapping work. Instead of waiting for every reference to be rewritten in a stop-the-world phase, C4 can repair references as they are loaded and allow background collector activity to progress concurrently.

Four concurrent stages

Azul describes C4 as a four-stage concurrent mechanism. In practical terms, the stages cover finding live objects, relocating and compacting them, and remapping references while the application proceeds. The implementation maintains the invariants needed for safe object movement rather than depending on one long global pause.

Why a read barrier matters

A read barrier changes the performance equation. Every protected reference load may do extra work, although many loads take a fast path. The cost depends on the application’s access patterns, compiler-generated code, allocation rate, hardware and how much collector activity is occurring. Azul documents a Hybrid Mode that can maintain LVB and LVB-less code versions and switch between them according to garbage-collection activity; the relevant control is GPGCLvbCodeVersioningMode, with allMethods and sampling choices. Treat that setting as release-specific and change it only after measuring.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 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.

What “generational” means in C4

Young and old generations operate independently

The defining distinction in the original C4 paper is simultaneous-generational concurrency. Young-generation and old-generation collections can run concurrently, independently and without reverting to a global stop-the-world full-heap compaction. A young collection can therefore continue even while a long concurrent collection of the entire heap is in progress.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This preserves the usual generational advantage—short-lived objects are handled separately from long-lived objects—while avoiding the conventional fallback in which a full collection pauses all Java threads. The two generations still compete for CPU, memory bandwidth and heap space, so independence of collection does not mean independence of resource usage.

Why this matters for latency

Allocation-heavy services often create a large volume of short-lived objects while retaining a substantial live set. Concurrent young and old work lets C4 keep processing that allocation stream during long-lived-object reclamation. The benefit is most visible in tail latency, where a rare full-heap pause can violate a service objective even when average throughput looks healthy.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • 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.

Where C4 is available

JVM or collector Availability and scope What to verify
Azul C4 Default and only collector in Azul Zing Builds of OpenJDK, distributed as part of the commercial Azul Prime JVM. Prime/Zing release, supported JDK level, platform, licensing and vendor support terms.
Azul Zulu Azul’s freely available OpenJDK distribution for general-purpose use; it is distinct from Prime/Zing. Do not assume a Zulu installation provides C4.
OpenJDK G1, ZGC or Shenandoah Upstream HotSpot collectors, with availability and generational features dependent on the JDK release. Exact JDK version, collector mode and production support policy.

Moving from HotSpot to C4 is therefore a JVM-product decision, not a collector flag change inside a standard OpenJDK build. Confirm the Prime/Zing build, Java compatibility, operating-system support and procurement requirements before planning a migration.

Latency, throughput and resource trade-offs

What C4 can improve

  • Fewer garbage-collection-related latency outliers during large-heap operation.
  • More consistent response times when long concurrent work overlaps with continued allocation.
  • Compaction without requiring a global stop-the-world full-heap phase in normal operation.

What C4 can cost

  • CPU: application threads execute barrier logic, while collector workers consume additional cores.
  • Memory: pauseless collectors generally need more heap headroom than traditional stop-the-world designs, and concurrent phases may temporarily increase live operational demand.
  • Bandwidth and scheduling: relocation, marking and remapping compete with application work for memory bandwidth and CPU scheduling time.
  • Monitoring interpretation: standard JMX heap metrics can be misleading if read as though collection were a single stop-the-world event; inspect committed, used and available headroom together.

There is no universal C4 pause or throughput number. Any published result must identify the Java and Prime versions, hardware, heap size, live-set size, allocation rate, workload, traffic pattern, percentile and comparator. A vendor claim is a starting hypothesis, not a substitute for testing your service.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

C4 compared with G1, ZGC and Shenandoah

These collectors address overlapping low-pause goals but differ in implementation, distribution and operating assumptions. Use the following axes rather than treating “low pause” as a complete performance category.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • 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
Axis C4 G1 ZGC Shenandoah
Pause model Concurrent relocation and remapping designed to avoid global compaction pauses in normal operation. Region-based collection with stop-the-world phases and concurrent work; pause behavior depends on goals and workload. Concurrent low-pause design with implementation details that vary by JDK release. Concurrent evacuation and updating with release-dependent behavior.
Distribution Azul Prime/Zing only. Upstream HotSpot OpenJDK. Upstream HotSpot OpenJDK. Upstream HotSpot OpenJDK.
Generational concurrency Young and old generations can be collected concurrently and independently. Verify the generational mode and behavior for the specific JDK release. Verify whether the selected JDK release supports the required generational mode. Verify the selected JDK release and mode.
Main overheads to measure LVB cost, collector CPU, memory headroom and concurrent bandwidth use. Pause targets, remembered-set work, CPU and heap occupancy. Barrier cost, CPU, heap headroom and allocation behavior. Barrier/forwarding cost, CPU and heap headroom.
Support and licensing Commercial Prime/Zing support and release compatibility. Depends on the chosen OpenJDK distributor. Depends on the chosen OpenJDK distributor. Depends on the chosen OpenJDK distributor.

The table is a decision framework, not a benchmark ranking. A collector that wins on one allocation pattern or latency percentile can lose on another.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to evaluate C4 for a real service

Azul cautions that a short microbenchmark may not produce representative garbage-collection activity. Use a replay or staging environment that preserves allocation behavior, live-set size, request concurrency and burst patterns.

  1. Fix the comparison: keep hardware, Java workload, service-level objectives and traffic generator constant between the current JVM and Prime/Zing.
  2. Characterize the workload: record allocation rate, live-set size, object-lifetime distribution, steady-state throughput and burst behavior.
  3. Measure latency distributions: capture p50, p95, p99 and p99.9 rather than only averages or maximums.
  4. Measure collector and process cost: record GC CPU, total process CPU, collector-cycle overlap, committed heap, used heap and remaining headroom.
  5. Exercise failure boundaries: include sustained bursts and verify whether allocation stalls, out-of-memory conditions or fallback events occur.
  6. Correlate telemetry: align GC logs with operating-system CPU, scheduler, memory-bandwidth and service-latency data.
  7. Repeat at realistic scale: run long enough to include old-generation pressure and multiple concurrent cycles; a warm-up-only test is insufficient.

Report the result with the exact Azul Prime release, Java level, machine type, heap configuration, workload description and percentile definitions. Without those qualifications, a claim such as “C4 is faster” is not reproducible.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 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.

Practical C4 tuning sequence

1. Establish headroom before changing flags

Size the heap for the live set plus enough allocation and concurrent-collection headroom to absorb traffic bursts. Track committed, used and free capacity over a complete collection cycle instead of reacting to one instantaneous JMX reading.

2. Confirm CPU capacity

Make sure the host has enough CPU for application threads and concurrent collector workers. If collector activity repeatedly consumes cores needed by request processing, increasing heap alone will not solve the latency problem.

3. Inspect cycle overlap and tail latency

Correlate p99 and p99.9 latency with young- and old-generation activity, barrier behavior, allocation rate and operating-system scheduling. Look for headroom collapse or CPU saturation before changing heuristics.

4. Adjust one release-specific control at a time

Azul’s command reference exposes controls for GPGC heuristic-check intervals, pause-prevention memory, concurrent-mark retry behavior and new-generation worker threads. Defaults are intended to work well in most situations. Change one setting, record the before-and-after metrics, and keep the command line tied to the exact Prime release because option names, defaults and availability can change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

5. Consider Hybrid Mode only when barriers are measurable

If allocation is low and collections are infrequent, barrier overhead may be a larger fraction of application work. Test GPGCLvbCodeVersioningMode with the documented allMethods or sampling choice only after establishing that this is the limiting cost. Do not enable a mode because it sounds faster; verify its effect on both throughput and tail latency.

Operational checklist and common misreadings

  • “Pauseless” means zero latency impact: incorrect. Barriers, collector work, scheduling and memory pressure still affect execution.
  • C4 is a HotSpot option: incorrect. It is tied to Azul Prime/Zing, not standard upstream OpenJDK distributions.
  • A tiny benchmark proves the choice: incorrect. It may never create realistic old-generation pressure or concurrent-cycle overlap.
  • Average latency is enough: incorrect. Tail percentiles expose the outliers that motivate a low-latency collector.
  • More heap always fixes latency: incorrect. Additional headroom can delay pressure, but insufficient CPU or barrier overhead can remain the bottleneck.
  • JMX used-heap values are directly comparable with stop-the-world collectors: not necessarily. Concurrent collection changes when and how those values move.

Bottom line for low-latency Java

C4 is a specialized answer to a specific problem: keeping large-heap Java services responsive while compaction and reference processing continue in the background. Its LVB enables concurrent relocation and remapping, and its simultaneous generational design lets young and old collections proceed independently. Choose it when predictable tail latency justifies a commercial Azul JVM and the CPU and heap headroom that concurrent barriers require. Validate that choice with production-shaped traffic, percentile latency, allocation and live-set measurements, collector and process CPU, heap headroom and failure-boundary tests.

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.