19 Matching Annotations
  1. Aug 2020
    1. ZGC is a new garbage collector that can handle massive heap sizes, up to 16 terabytes in size, without an increase in pause time. For big data applications that may be processing massive amounts of data in-memory, keeping garbage collection pauses down below 10ms means that processing speed on large data sets won’t be stalled out by limitations in the language. 
  2. Jun 2020
    1. the focus here is to make it safe to have mutable data around, not to have manual memory management

      Mutable data without memory management (no garbage collector)

  3. Feb 2020
    1. GARCIA-NAVARRO: Yeah, the CBC sent a professional dumpster diver out to some major Toronto shopping malls while they were looking into this. And she found all kinds of boxes of new items just thrown in the trash. VASIL: It's really alarming, actually, when you realize how much is ending up in the trash that is perfectly good and still in functional condition.
  4. Jul 2019
  5. Aug 2018
  6. Aug 2015
    1. Stdlib support for a global Trace trait that everyone derives would be awesome.

      The issue of wanting to augment structs from external crates with additional traits seems like a pretty generic problem. Seems a shame to solve it only for GC tracing.

  7. Jan 2014
    1. A lot of people seem to think that heap allocation is expensive and stack allocation is cheap. They are actually about the same, typically. It’s the deallocation costs – the marking and sweeping and compacting and moving memory from generation to generation – that are massive for heap memory compared to stack memory.
    2. This sketch is complicated by the fact that there are actually three such arenas; the CLR collector is generational. Objects start off in the “short lived” heap. If they survive they eventually move to the “medium lived” heap, and if they survive there long enough, they move to the “long lived” heap. The GC runs very often on the short lived heap and very seldom on the long lived heap; the idea is that we do not want to have the expense of constantly re-checking a long-lived object to see if it is still alive. But we also want short-lived objects to be reclaimed swiftly.
    3. When a garbage collection is performed there are three phases: mark, sweep and compact. In the “mark” phase, we assume that everything in the heap is “dead”. The CLR knows what objects were “guaranteed alive” when the collection started, so those guys are marked as alive. Everything they refer to is marked as alive, and so on, until the transitive closure of live objects are all marked. In the “sweep” phase, all the dead objects are turned into holes. In the “compact” phase, the block is reorganized so that it is one contiguous block of live memory, free of holes.