Garbage collection finds objects that a program can still reach, then makes unreachable objects’ storage available for reuse. That does not necessarily return memory to the operating system or lower the process’s resident set size (RSS). In a concurrent collector, a write barrier helps preserve a correct view of the object graph while the program continues changing it.
What garbage collection does
A tracing collector starts from roots—references the runtime treats as entry points, such as references in globals and stacks—and follows pointers from them. Objects it can reach are live from the collector’s point of view. Objects it cannot reach are candidates for reclamation. In a mark-sweep design, the collector marks discovered objects and later sweeps through managed storage, making space occupied by unreachable objects available for future allocations. The Go guide describes this approach for the standard Go toolchain; other runtimes can use different collection algorithms. Go’s garbage collector guide
As an Amazon Associate I earn from qualifying purchases.
“Reclaimed” does not necessarily mean that an object’s bytes disappear from the process immediately. It means the runtime can reuse the storage, subject to that runtime’s allocator and collection policy. Whether memory is later released to the operating system is a separate question.
Tri-color marking, step by step
Tri-color marking is a way to reason about tracing, not a promise that every runtime literally assigns each object one of three stored colors. The model describes what the collector knows about objects during a marking phase:
#1 Best Overall
- 【Diagnose Check Engine Light in Seconds – No Mechanic Needed】The FOXWELL NT301 OBD2 scanner instantly reads & clears engine fault codes (DTCs) with one click. Simply plug into the 16-pin DLC port, turn ignition on, and get accurate results within seconds—No prior car knowledge required. Save hundreds on dealership fees by knowing exactly what’s wrong before you visit a shop. The #1 choice car scanner for DIYers and car owners who want to take control of their vehicle’s health
- 【Clear & Reset CEL with Confidence】Unlike cheap code readers that just erase codes temporarily, NT301 works like all professional vehicle code readers: It clears the check engine light only after you’ve fixed the underlying issue. If the problem isn’t fully repaired, the fault code will reappear. So you’ll never get a false pass. Use the foxwell scanner to verify your repair work and drive with peace of mind
- 【Sm-og Check Helper – Know Your Pass/Fail Status Before the Test】With dedicated one-click I/M readiness hotkeys and a simple Red-Yellow-Green LED indicator, you’ll instantly know if your vehicle is ready for annual testing. Built-in speaker provides clear audio feedback. No guesswork—just confidence before you head to the test center. One less thing to worry about when inspection day comes
- 【Advanced OBDII Modes – O- 2 Sensor & EVAP Testing】NT301 go beyond basic code reading with enhanced OBD2 modes. Run an EVAP system check to assess fuel tank condition, and use the O- 2 sensor test to optimize air-fuel ratio, boosting fuel economy, cutting em- issions, and saving you money at the pump. The code reader for cars and trucks is like having a mini em-issions lab in your glove box
- 【Live Data Graphing – Spot Engine Issues in Real Time】View and log live sensor data in easy-to-read graphs with this OBD2 scanner diagnostic tool. Monitor ox- ygen sensors, fuel trims, coolant temperature, RPM, and more to spot suspicious values instantly. This obd scanner gives you professional-grade insight without the pro price tag—a feature you won’t find on basic $20 car code readers
- White: not yet discovered by the collector.
- Grey: discovered, but its outgoing pointers have not all been scanned.
- Black: scanned; the collector has processed its outgoing pointers.
- The collector begins with objects treated as white and shades roots grey.
- It selects a grey object and follows its pointers. Newly discovered white objects become grey.
- After scanning an object’s pointers, the collector treats it as black.
- When no grey work remains, white objects are unreachable in the collector’s view and can be considered for reclamation under the full collector algorithm.
The model’s important safety condition during concurrent marking is that a black object must not point to a white object without the collector learning about that white object. Otherwise, the collector could finish scanning the black object, miss a newly connected live object, and mistakenly treat it as unreachable. Go’s conceptual account explains this invariant and its role in concurrent collection. Go GC: Prioritizing low latency and simplicity
Why a concurrent collector needs a write barrier
While a concurrent collector marks objects, the application—often called the mutator—may continue changing pointers. For example, after the collector scans an object, the application might store a reference to a previously undiscovered object in it. Without a barrier or another synchronization strategy, the collector could miss that object even though the program now reaches it.
A write barrier is runtime work associated with pointer changes that helps the collector account for mutations. In the Go article’s explanation, the barrier shades a newly reachable white object grey so the collector will scan it. The article puts the invariant this way: “Maintaining this invariant is the job of the write barrier, which is a small function run by the mutator whenever a pointer in the heap is modified.” The Go article’s tri-color explanation
Rank #2
- [Easy to Use—Work Out of the Box] + [FOXWELL 2026 New Version] FOXWELL NT604 Elite scan tool is the 2026 new version from FOXWELL, designed for car owners who want to figure out the cause of issues before fixing car problems by scanning common systems like ABS, SRS, engine, and transmission. The NT604 Elite obd2 scanner diagnostic tool comes with the latest software—no need to waste time downloading software first. Plug the scanner into the OBDII port with OBDII cable to start the diagnosis.
- [Affordable] + [Reliable Car Health Monitor] Will you be confused what happens when the warning light of ABS/SRS/transmission/check engine flashes? Instead of taking your cars to dealership, this FOXWELL scanner will help you do a thorough scanning and detection for your cars and pinpoint the root cause. Note:The device is a diagnostic tool, not a repair tool. To turn off a warning light, you must first physically repair the issue causing it. Only then can the scanner be used to clear the corresponding fault code.
- [5 in 1 Car Diagnostic Scanner] Compared with obd scanners (50-100), NT604 Elite code scanner not only includes their OBDII diagnosis but also serves as ABS/SRS scanner, transmission and check engine code reader. When it’s an odb2 scanner, you can use it to check if your car is ready for annual test through I/M readiness menu. In addition, live data stream, built-in DTC library, data play back and print, all these features are a big plus for it. Note: doesn't support maintenance functions like reset or relearn. For the SRS system, NT604 Elite can read and clear common fault codes not caused by a crash, but crash/collision data cannot be cleared.
- [Fantastic AUTOVIN] + [No extra software fee] Through the AUTOVIN menu, this NT604 Elite car scanner allows you to get your V-IN and vehicle info rapidly, no need to take time to find your V-IN and input one by one. What's more, the NT604 Elite ABS SRS scanner supports 60+ car brands from worldwide (America/Asia/Europe). You don’t need to pay extra software fee. AUTOVIN may not work on some older vehicles or certain vehicle brands. If AUTOVIN fails, please input the vin code manually or go to the Diagnostic Menu to select your vehicle model.
- [Solid protective case KO plastic carrying bag] + [Lifetime update] Almost all same price-level car scanner diagnostic tool only offers plastic bag to hold the scanner.However, NT604 Elite automotive scanner is equipped with solid protective case, preventing your obd2 scanner from damage. Then you don’t need to pay extra money to buy a solid toolbox.
That describes the concept, not a universal recipe. Barrier algorithms and combinations of barriers differ among collectors and versions. Go’s runtime source documents implementation details for its own runtime, which should not be generalized to other languages or collectors. Go runtime write-barrier source
Why RSS can stay high after a collection
Memory measurements answer different questions. A collection may lower the amount of live object data while leaving the process’s RSS largely unchanged. To interpret a memory graph, separate these layers:
| Concept or measure | What it tells you | What it does not establish by itself |
|---|---|---|
| Reachable or live objects | Which managed objects the collector can find from roots at the relevant point in a collection. | How many pages the operating system currently counts as resident. |
| Reclaimed managed storage | Storage the runtime can reuse for later allocations. | That the runtime has returned the storage to the operating system. |
| Reserved or committed runtime memory | Address space or pages managed for the heap and runtime structures, according to the runtime’s accounting. | That all of it is physically resident, or that it consists of live objects. |
| RSS | Resident memory counted for the process, which can include managed heap pages as well as stacks, native allocations, mappings and other resident memory. | How much of that memory is live managed data. |
One possible explanation for a high post-collection RSS is that the runtime keeps freed spans or pages available for future allocations, or releases memory only under particular conditions. Memory outside the managed heap—such as stacks, native allocations and mappings—can also contribute. These are diagnostic possibilities, not conclusions: the actual explanation depends on the runtime, operating system and measurements.
Rank #3
- 【A MUST-HAVE SCANNER TOOL FOR DIYERS】 - VDIAGTOOL VD10 car code reader is an incredibly useful, handheld obd2 scanner for each car owner or hobbyist, even for those with little to no experience when it comes to vehicle mechanics! Similar to a fixd car diagnostic tool, using this car diagnostic scanner is extremely easy. All you have to do is attach it to your car OBDII port and you can diagnose car problems in seconds! Read Codes (DTCs); Clear Codes; Live Data; View Freeze Frame; I/M Readiness; Vehicle Information.
- 【KEEP ENGINE IN GOOD STATUS】 - VDIAGTOOL check engine code reader brings a fast access to scan, read the car fault code, show its definition on the screen instantly, troubleshooting to find the root causes of problems, erase the engine fault code and turn off the MIL (Malfunction Indicator Light). Similar to a fixd car diagnostic tool, this car code reader helps ensure your engine stays in top condition.
- 【READ/CLEAR CODES & DTC LOOKUP】- No search online & saving your time, this vehicle car code reader retrieves generic (P0, P2, P3, and U0), manufacturer specific (P1, P3, and U1) codes, pending codes and displays DTC definitions based on the built-in database(more than 3000 codes) on the TFT screen, find out the root causes and clear the codes after fixed.
- 【ENHANCED OBD2 SCANNER WITH LIVE DATA & RETRIEVE FREEZE FRAME】 - This diagnostic scan tool for accurate diagnosis enables you to retrieve data from vehicle sensors, such as Engine RPM, Intake air temperature, Short/Long term fuel, Misfire data and etc. The freeze frame is stored in the PCM together with the diagnostic trouble code (DTC) related to the fault. Comparable to a fixd car diagnostic tool, the VD10 car code reader car scanner can be a valuable & practical diagnostic aid and also greatly help when diagnosing intermittent problems.
- 【I/M READINESS for THE S-nn-0-g CHECK】- OBDII vehicle may not pass the annual inspection unless the required monitors since reset are complete. So you should at least read the readiness monitors and make sure they are ready. This car obd2 scanner diagnostic tool is equipped with I/M readiness function to check the operations of the e-m-issi0n system on OBD2 compliant vehicles, run I/M monitor readiness test, checking if the pass vehicle s-m-0-g inspection.
For Go specifically, the living Go garbage collector guide warns that virtual-memory measures such as VSS can be poor indicators of process footprint because of large address-space reservations, and recommends RSS and similar measures for physical usage in its stated context. The guide describes the standard Go toolchain as of Go 1.19; its examples and advice should be read within that scope, not as guarantees about every Go implementation or all current runtime internals.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallHigh RSS alone does not prove a memory leak. A more direct warning sign is a live heap or retained object graph that keeps growing when measured at comparable points after completed collections. If live managed heap is stable while RSS remains high, retained allocator pages, non-heap memory or residency accounting may be involved; inspect measurements before drawing a conclusion.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.What different collector examples illustrate
Collector behavior is implementation-specific. These examples show why it matters to name the runtime and version rather than treating a technique or tuning control as universal.
Rank #4
- CEL Doctor: The ANCEL AD310 is one of the best-selling OBD II scanners on the market and is recommended by Scotty Kilmer, a YouTuber and auto mechanic. It can easily determine the cause of the check engine light coming on. After repairing the vehicle's problems, it can quickly read and clear diagnostic trouble codes of emission system, read live data & hard memory data, view freeze frame, I/M monitor readiness and collect vehicle information
- Sturdy and Compact: Equipped with a 2.5 foot cable made of very thick, flexible insulation. It is important to have a sturdy scanner as it can easily fall to the ground when working in a car. The AD310 OBD2 scanner is a well-constructed mechanic tool with a sleek design. It weighs 12 ounces and measures 8.9 x 6.9 x 1.4 inches. Thanks to its compact design and light weight, transporting the device is not a problem. The buttons are clearly labelled and the screen is large and displays results clearly
- Accurate Fast and Easy to Use: The AD310 scanner can help you or your mechanic understand if your car is in good condition, provides exceptionally accurate and fast results, reads and clears engine trouble emission codes in seconds after you fixed the problem. This device will let you know immediately and fix the problem right away without any car knowledge. No need for batteries or a charger, get power directly from the OBDII Data Link Connector in your vehicle
- OBDII Protocols and Car Compatibility: Many cheap scan tools do not really support all OBD2 protocols. AD310 scanner as it can support all OBDII protocols such as KWP2000, J1850 VPW, ISO9141, J1850 PWM and CAN. This device also has extensive vehicle compatibility with 1996 US-based, 2000 EU-based and Asian cars, light trucks, SUVs, as well as newer OBD2 and CAN vehicles both domestic and foreign. Pls confirm with our customer service whether it is compatible with your vehicle before purchasing
- Home Necessity and Worthy to Own: This is an excellent code reader to travel or home with as it weighs less and it is compact in design. You can easily slide it in your backpack as you head to the garage, or put it on the dashboard, this will be a great fit for you. The AD310 is not only portable, but also accurate and fast in performance. Moreover, it covers various car brands and is suitable for people who just need a code reader to check their car
| Runtime or collector | Documented detail | Scope to keep in mind |
|---|---|---|
| Go standard toolchain | The Go guide describes tracing mark-sweep, root scanning, heap targets and a runtime memory limit. | The guide expressly describes the standard gc toolchain as of Go 1.19. Its Go-specific controls and accounting are not general rules for other runtimes. Go GC guide |
| Go concurrent-marking explanation | The Go engineering article presents a tri-color model and a barrier that shades newly reachable objects. | It is a conceptual account associated with the Go 1.5 collector, not a current benchmark or complete description of every present implementation detail. Go GC article |
| HotSpot G1 | Oracle’s Java 23 tuning guide says G1 uses Snapshot-At-The-Beginning (SATB) marking and may retain some additional memory compared with other marking approaches. | This is a documented G1 design caveat; it does not identify the cause of a particular process’s RSS. Oracle HotSpot Java 23 tuning guide |
How to investigate high memory use
Compare measurements taken under consistent conditions and interpret each according to the runtime’s definitions. A practical sequence is:
- Identify the environment. Record the language and runtime version, collector configuration, operating system, container memory limit, and whether native code or memory-mapped files are involved.
- Measure comparable moments. Where the runtime exposes them, record live heap or object-profile data, allocated and released heap, committed or runtime-managed memory, and OS- or container-reported RSS. Include whether a collection completed before the reading.
- Check whether live data is growing. Inspect a heap profile or retained-object graph across comparable post-collection points. A growing live set calls for finding retaining references and allocation sources, not just watching RSS.
- Read runtime-specific GC signals. Use the runtime’s logs and metrics to understand collection frequency, work, pauses and memory-release activity. For Go, the guide discusses heap profiles, runtime metrics, GC traces,
GOGCandGOMEMLIMIT; those names and semantics apply to Go, not automatically to other runtimes. Go guide and its diagnostic material - Account for memory outside live objects. If live heap is stable but RSS is high, examine runtime-retained pages, stacks, native allocations, mappings and platform accounting before deciding that collection failed.
- Tune only after establishing a cause. Change one runtime-specific control at a time, then compare memory alongside CPU use and latency. In Go,
GOGCcontrols a target trade-off and the runtime memory limit is soft; neither setting is a universal collector control. Go GC guide
What to compare when evaluating a memory graph
For a useful comparison across runs, collector configurations or runtimes, keep the context attached to every measurement:
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →- Runtime, collector and version.
- Marking and barrier strategy, where documented.
- Pause time and collector CPU work.
- Live heap versus allocated or committed memory.
- RSS versus virtual size, using each metric’s documented definition.
- When unused pages may be returned to the operating system.
- Container and runtime memory limits.
A change in one metric does not imply the same change in another. For example, a smaller live heap after collection is evidence about reachable managed objects; it is not, on its own, evidence that RSS should fall by the same amount.
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.




