<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Jvm-Internals on Bits, Trades &amp; Systems</title>
    <link>https://blog.turboawesome.win/series/jvm-internals/</link>
    <description>Recent content in Jvm-Internals on Bits, Trades &amp; Systems</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 24 May 2018 09:38:00 +0000</lastBuildDate>
    <atom:link href="https://blog.turboawesome.win/series/jvm-internals/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Project Loom Preview: Virtual Threads and What They Mean for Server Code</title>
      <link>https://blog.turboawesome.win/2018/05/project-loom-preview-virtual-threads-and-what-they-mean-for-server-code/</link>
      <pubDate>Thu, 24 May 2018 09:38:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2018/05/project-loom-preview-virtual-threads-and-what-they-mean-for-server-code/</guid>
      <description>Project Loom&amp;#39;s virtual threads promise to fix Java&amp;#39;s thread-per-request scalability problem by making millions of lightweight threads practical. Here&amp;#39;s what the early design looked like and why it matters for server-side Java.</description>
    </item>
    <item>
      <title>From Java 8 to Java 11 in a Regulated Environment: What Actually Broke</title>
      <link>https://blog.turboawesome.win/2017/11/from-java-8-to-java-11-in-a-regulated-environment-what-actually-broke/</link>
      <pubDate>Wed, 08 Nov 2017 11:23:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2017/11/from-java-8-to-java-11-in-a-regulated-environment-what-actually-broke/</guid>
      <description>Migrating a large financial institution&amp;#39;s Java estate from Java 8 to Java 11 involved removing internal APIs, JPMS module system friction, and more dependency surprises than expected. What actually broke and how we fixed it.</description>
    </item>
    <item>
      <title>Reading GC Logs Like a Detective</title>
      <link>https://blog.turboawesome.win/2017/04/reading-gc-logs-like-a-detective/</link>
      <pubDate>Tue, 18 Apr 2017 09:11:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2017/04/reading-gc-logs-like-a-detective/</guid>
      <description>GC logs are the most information-dense diagnostic output the JVM produces, and most engineers never learn to read them properly. A guide to interpreting G1GC logs and using them to diagnose real production problems.</description>
    </item>
    <item>
      <title>Threading Models in Java: Which One Does Your System Actually Need?</title>
      <link>https://blog.turboawesome.win/2016/11/threading-models-in-java-which-one-does-your-system-actually-need/</link>
      <pubDate>Wed, 09 Nov 2016 10:22:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2016/11/threading-models-in-java-which-one-does-your-system-actually-need/</guid>
      <description>Thread-per-request, event-loop, work-stealing, single-threaded with message passing — Java supports all of them, but each optimises for different things. Choosing the wrong model means fighting the runtime rather than working with it.</description>
    </item>
    <item>
      <title>Heap Dumps and Flight Recorder: Diagnosing JVM Memory Problems in Production</title>
      <link>https://blog.turboawesome.win/2016/08/heap-dumps-and-flight-recorder-diagnosing-jvm-memory-problems-in-production/</link>
      <pubDate>Wed, 24 Aug 2016 14:55:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2016/08/heap-dumps-and-flight-recorder-diagnosing-jvm-memory-problems-in-production/</guid>
      <description>Heap dumps and Java Flight Recorder are the two tools that diagnose production JVM memory problems. Understanding how to capture them without killing the service, and how to read what they tell you, is a gap in most JVM engineers&amp;#39; toolkits.</description>
    </item>
    <item>
      <title>ZGC and Shenandoah: What Low-Pause GC Means for Trading Systems</title>
      <link>https://blog.turboawesome.win/2015/10/zgc-and-shenandoah-what-low-pause-gc-means-for-trading-systems/</link>
      <pubDate>Thu, 01 Oct 2015 09:44:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2015/10/zgc-and-shenandoah-what-low-pause-gc-means-for-trading-systems/</guid>
      <description>In 2015 the JVM GC landscape was about to change significantly. ZGC and Shenandoah were in development, promising sub-millisecond GC pauses regardless of heap size. Here&amp;#39;s what the previews looked like and what they meant for latency-sensitive Java.</description>
    </item>
    <item>
      <title>Understanding Safepoints: The JVM Pauses Nobody Talks About</title>
      <link>https://blog.turboawesome.win/2015/05/understanding-safepoints-the-jvm-pauses-nobody-talks-about/</link>
      <pubDate>Wed, 27 May 2015 14:38:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2015/05/understanding-safepoints-the-jvm-pauses-nobody-talks-about/</guid>
      <description>GC pauses get all the attention, but safepoints are a broader category of JVM stop-the-world events that affect latency in ways GC tuning can&amp;#39;t fix.</description>
    </item>
    <item>
      <title>Choosing a GC Collector for Low-Latency Java: A Practical Comparison</title>
      <link>https://blog.turboawesome.win/2014/08/choosing-a-gc-collector-for-low-latency-java-a-practical-comparison/</link>
      <pubDate>Wed, 06 Aug 2014 10:18:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2014/08/choosing-a-gc-collector-for-low-latency-java-a-practical-comparison/</guid>
      <description>CMS vs G1 vs parallel GC vs no-GC strategies. The tradeoffs as they actually played out in a latency-sensitive financial application, with real numbers.</description>
    </item>
    <item>
      <title>Off-Heap Memory in Java: sun.misc.Unsafe and Chronicle Map</title>
      <link>https://blog.turboawesome.win/2014/04/off-heap-memory-in-java-sun.misc.unsafe-and-chronicle-map/</link>
      <pubDate>Wed, 02 Apr 2014 10:17:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2014/04/off-heap-memory-in-java-sun.misc.unsafe-and-chronicle-map/</guid>
      <description>The Java heap is GC&amp;#39;d. Off-heap memory is not. For large data structures that don&amp;#39;t benefit from GC management and do benefit from predictable latency, off-heap allocation via Unsafe and Chronicle Map is the right tool — if you respect its dangers.</description>
    </item>
    <item>
      <title>Why Average Latency Is a Lie: HdrHistogram and Measuring What Matters</title>
      <link>https://blog.turboawesome.win/2013/11/why-average-latency-is-a-lie-hdrhistogram-and-measuring-what-matters/</link>
      <pubDate>Wed, 27 Nov 2013 11:14:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2013/11/why-average-latency-is-a-lie-hdrhistogram-and-measuring-what-matters/</guid>
      <description>Average latency hides the distribution. HdrHistogram gives you a complete picture of latency across the full range — and it does so without distorting the system you&amp;#39;re measuring.</description>
    </item>
    <item>
      <title>JVM JIT Compilation: What the C2 Compiler Does to Your Loops</title>
      <link>https://blog.turboawesome.win/2013/07/jvm-jit-compilation-what-the-c2-compiler-does-to-your-loops/</link>
      <pubDate>Tue, 30 Jul 2013 14:11:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2013/07/jvm-jit-compilation-what-the-c2-compiler-does-to-your-loops/</guid>
      <description>The HotSpot C2 compiler can transform your Java bytecode into surprisingly efficient native code — but only under specific conditions. Understanding those conditions explains a class of mysterious performance cliffs.</description>
    </item>
    <item>
      <title>Stop-the-World GC Pauses Killed Our SLA — And What We Did About It</title>
      <link>https://blog.turboawesome.win/2012/11/stop-the-world-gc-pauses-killed-our-sla-and-what-we-did-about-it/</link>
      <pubDate>Tue, 13 Nov 2012 11:08:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2012/11/stop-the-world-gc-pauses-killed-our-sla-and-what-we-did-about-it/</guid>
      <description>How garbage collection pauses blew our latency SLA during peak market hours, and the three-phase approach we used to get it under control.</description>
    </item>
    <item>
      <title>Why Your Java App Is Slow Before It Even Starts: Classloading Deep Dive</title>
      <link>https://blog.turboawesome.win/2012/06/why-your-java-app-is-slow-before-it-even-starts-classloading-deep-dive/</link>
      <pubDate>Mon, 18 Jun 2012 09:11:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2012/06/why-your-java-app-is-slow-before-it-even-starts-classloading-deep-dive/</guid>
      <description>Java classloading happens lazily, on demand, and under lock. Understanding the classloader hierarchy and what triggers loading explains a category of JVM startup and first-call latency problems.</description>
    </item>
  </channel>
</rss>
