3 comments

  • smallnix1 hour ago
    &gt; selecting something else depending on arcane environmental conditions was more of a burden than an advantage<p>What is being referred to here? Does &quot;else&quot; refer to ZGC, Shenandoah?<p>What does arcane env conditions mean?
    • aatos1 hour ago
      It&#x27;s in the JEP (<a href="https:&#x2F;&#x2F;openjdk.org&#x2F;jeps&#x2F;523" rel="nofollow">https:&#x2F;&#x2F;openjdk.org&#x2F;jeps&#x2F;523</a>):<p>&gt; We made G1 the default collector for server environments in JDK 9 (JEP 248). At that time, testing showed that Serial had significant advantages in throughput and footprint in constrained environments with a single CPU or less than 1792 MB of physical memory. We therefore adjusted the JVM&#x27;s GC selection algorithm to choose Serial in such environments.
  • kasperni1 hour ago
    Are people still dealing with GC issues?<p>I find that it basically just more or less works out of the box on modern JVMs.
    • hylaride54 minutes ago
      There are edge cases where GC issues can crop up, in particular specific &quot;serverless&quot; models (eg AWS lambdas) where the JVM can get &quot;paused&quot; between executions and GC doesn&#x27;t cleanly run, causing memory to trend upwards until the next cold-start happens (especially if you&#x27;re running it within a docker container yourself). Limited CPU situations that can exist in these kinds of runtime environments also limit GC in several ways, too.
      • skullone43 minutes ago
        What&#x27;s it like running JVM inside serverless? Python gets interesting enough when it pauses waiting for another call sometimes, the JVM seems like it&#x27;d introduce its own interesting things :o
    • kelseyfrog38 minutes ago
      It&#x27;s selection bias. There&#x27;s a huge number of GC language users, but those who experience problems tend to be the ones who comment.<p>You&#x27;re right; the vast majority of people use GC just fine and go about their day. We should update little to none when we see evidence of GC hardship.
  • stmw46 minutes ago
    GC&#x27;s haven&#x27;t freed us from manual memory management, you just do all that manual work with environment variables, or making sure to &quot;pick the right collector for the job&quot;, or debugging performance or heap size issues, or chasing down weak references or confused finalizers.