News for hackers. Stuff that matters.
Re:Rust vs. Go by lisivka on Wednesday January 18, 2017 @05:07PM (#13430793)
GC must also reallocate used memory to avoid fragmentation of free memory. Do you know a true fully pauseless algorithm for that?
Re:Rust vs. Go by lisivka on Wednesday January 18, 2017 @06:08PM (#13431349)
Downvoters - WTF? Memory fragmentation is the problem for long standing processes with frequent allocations/deallocations of various sizes.

http://stackoverflow.com/questions/3770457/what-is-memory-fr...

Re:Rust vs. Go by tomp on Wednesday January 18, 2017 @06:44PM (#13431594)
IIRC Azul's pauseless GC uses kernel-level memory barriers to catch accesses to recently moved objects.
Re:Rust vs. Go by lisivka on Wednesday January 18, 2017 @07:22PM (#13431831)
Azul still have pauses (10-100ms).

> Azul Systems has built a custom system (CPU, chip, board, and OS) specifically to run garbage collected virtual machines. The custom CPU includes a read barrier instruction. The read barrier enables a highly concurrent, parallel and compacting GC algorithm. The Pauseless GC algorithm is simple, efficient (low mutator overhead), and has no Stop-The-World pauses.

Azul is very similar to Shenandoah we are talking about. Updating of a wrong pointer still needs time, which can be unlucky when write trap is triggered in the middle of moving of large object.

Re:Rust vs. Go by tomp on Thursday January 19, 2017 @02:23AM (#13433816)
It's the "stop-the-world" pauses that are problematic and that we've been talking about. Single-thread pauses are a fact of life, completely unavoidable with any dynamic memory allocation system even without GC (e.g. when malloc searches the free-lists).