<?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 on Bits, Trades &amp; Systems</title>
    <link>https://blog.turboawesome.win/tags/jvm/</link>
    <description>Recent content in Jvm 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/tags/jvm/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>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>Why the Risk Team Chose Clojure (And Why It Made Sense)</title>
      <link>https://blog.turboawesome.win/2016/04/why-the-risk-team-chose-clojure-and-why-it-made-sense/</link>
      <pubDate>Tue, 05 Apr 2016 14:17:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2016/04/why-the-risk-team-chose-clojure-and-why-it-made-sense/</guid>
      <description>A Lisp in a large financial institution sounds like a punchline. The reasoning behind the decision was more principled than the stereotype suggests.</description>
    </item>
    <item>
      <title>Five Years in High-Frequency Trading: What I Actually Learned</title>
      <link>https://blog.turboawesome.win/2015/11/five-years-in-high-frequency-trading-what-i-actually-learned/</link>
      <pubDate>Thu, 12 Nov 2015 16:03:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2015/11/five-years-in-high-frequency-trading-what-i-actually-learned/</guid>
      <description>Looking back at five years of low-latency systems work: what the environment teaches you that you can&amp;#39;t learn elsewhere, and what habits it instils that don&amp;#39;t always transfer cleanly to other domains.</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>Scala Akka Actors for Trading Workflows: Promises and Pitfalls</title>
      <link>https://blog.turboawesome.win/2015/08/scala-akka-actors-for-trading-workflows-promises-and-pitfalls/</link>
      <pubDate>Wed, 19 Aug 2015 11:28:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2015/08/scala-akka-actors-for-trading-workflows-promises-and-pitfalls/</guid>
      <description>We evaluated Akka actors for a workflow orchestration layer in the trading system. The actor model&amp;#39;s isolation and message-passing properties were genuinely useful — and its failure modes were genuinely painful.</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>Scala on the Hot Path: Where the Abstraction Cost Goes</title>
      <link>https://blog.turboawesome.win/2014/01/scala-on-the-hot-path-where-the-abstraction-cost-goes/</link>
      <pubDate>Wed, 08 Jan 2014 09:44:00 +0000</pubDate>
      <guid>https://blog.turboawesome.win/2014/01/scala-on-the-hot-path-where-the-abstraction-cost-goes/</guid>
      <description>Scala&amp;#39;s abstractions are elegant — but on the JVM, elegance has a bytecode cost. Understanding where Scala generates boxing, closures, and virtual dispatch tells you which patterns are safe in hot paths and which aren&amp;#39;t.</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>
