Difference between background and concurrent garbage collection?

Here, Microsoft uses the names “concurrent” and “background” to describe two versions of the GC it uses in .NET. In the .NET world, the “background collector” is an enhancement over the “concurrent collector” in that it has less restrictions on what application threads can do while the collector is running. A basic GC uses a … Read more

PyQt: RuntimeError: wrapped C/C++ object has been deleted

This answer to this question is as found here: Python PySide (Internal c++ Object Already Deleted) Apparently, assigning one widget to QMainWindow using setCentralWidget and then assigning another widget with setCentralWidget will cause the underlying c++ QWidget to be deleted, even though I have an object that maintains reference to it. Note: QMainWindow takes ownership … Read more

Explanation of Azul’s “pauseless” garbage collector

They talk about the pause that inevitably occurs when compacting the heap. You see, when you allocate and deallocate lots of objects of different sizes as you go, you fragment the heap (much like you fragment your harddrive). When fragmentation becomes too extreme, you have to clean up/defragment/compact the heap by reserving a huge chunk … Read more

How to implement a garbage collector?

Could anyone point me to a good source on how to implement garbage collection? There’s a lot of advanced material about garbage collection out there. The Garbage Collection Handbook is great. But I found there was precious little basic introductory information so I wrote some articles about it. Prototyping a mark-sweep garbage collector describes a … Read more

Why does the JVM full GC need to stop-the-world?

First, Garbage Collection article at wikipedia is really good reading. In general GC does not require Stop-the-World pause. There are JVM implementations which are (almost) pause free (e.g. Azul Zing JVM). Whenever JVM require STW to collect garbage depends on algorithm it is using. Mark Sweep Compact (MSC) is popular algorithm used in HotSpot by … Read more

How to redirect verbose garbage collection output to a file?

From the output of java -X: -Xloggc:<file> log GC status to a file with time stamps Documented here: -Xloggc:filename Sets the file to which verbose GC events information should be redirected for logging. The information written to this file is similar to the output of -verbose:gc with the time elapsed since the first GC event … Read more

What kind of Garbage Collection does Go use?

Plans for Go 1.4+ garbage collector: hybrid stop-the-world/concurrent collector stop-the-world part limited by a 10ms deadline CPU cores dedicated to running the concurrent collector tri-color mark-and-sweep algorithm non-generational non-compacting fully precise incurs a small cost if the program is moving pointers around lower latency, but most likely also lower throughput, than Go 1.3 GC Go … Read more