Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>"Efficient" can mean several things. Here it probably refers to high <em>throughput</em>. When looking at response time, you're more interested in <em>latency</em>, which could indeed be worse than with alternative GC strategies.</p> <p>The main alternatives to stop-the-world GCs are</p> <ul> <li>incremental GCs, which need not finish a collection cycle before handing back control to the mutator<sup>1</sup> temporarily, and</li> <li>concurrent GCs which (virtually) operate <em>at the same time</em> as the mutator, interrupting it only very briefly (e.g. to scan the stack).</li> </ul> <p>Both need to perform extra work to be correct in the face of concurrent modification of the heap (e.g. if a new object is created and attached to an already-scanned object, this new reference must be noticed). This impacts total throughput, i.e., it takes longer to actually clean the entire heap. The upside is that they do not (usually) interrupt the program for very long, if at all, so latency is low(er).</p> <p>Although the V8 documentation still mentions a stop-the-world collector, it seems that an the <a href="http://blog.chromium.org/2011/11/game-changer-for-interactive.html">V8 GC <strong>is</strong> incremental</a> since 2011. So while it does stop program execution once in a while, it does <em>not</em> <sup>2</sup> stop the program for however long it takes to scan the entire heap. Instead it can scan for, say, a couple milliseconds, and let the program resume.</p> <p><sup>1</sup> "Mutator" is GC terminology for the program whose heap is garbage collected.</p> <p><sup>2</sup> At least in principle, this is probably configurable.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload