<?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 Ertu&#39;s Blog</title>
    <link>https://ertu.dev/tags/jvm/</link>
    <description>Recent content in Jvm on Ertu&#39;s Blog</description>
    <image>
      <title>Ertu&#39;s Blog</title>
      <url>https://ertu.dev/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://ertu.dev/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.140.2</generator>
    <language>en</language>
    <lastBuildDate>Thu, 11 Jun 2026 18:53:00 +0300</lastBuildDate>
    <atom:link href="https://ertu.dev/tags/jvm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Clojure is almost as fast as C (with some help)</title>
      <link>https://ertu.dev/posts/4_clojure-reaching-c-performance/</link>
      <pubDate>Thu, 11 Jun 2026 18:53:00 +0300</pubDate>
      <guid>https://ertu.dev/posts/4_clojure-reaching-c-performance/</guid>
      <description>&lt;p&gt;I have a stress test written in C: 100,000 cubes flying around in space. The CPU rebuilds every cube&amp;rsquo;s 4x4 transform matrix on every frame and sends all of them to the GPU. That is around 900,000 sine evaluations and 6 MB of matrix data per frame, and after that the GPU still has to draw 3.6 million triangles. So the frame is half CPU work, half GPU work.&lt;/p&gt;
&lt;p&gt;I ported it to Clojure and wanted to see how close I could get to the C version&amp;rsquo;s FPS. I should say up front that I did not do the optimization work alone: I paired with Claude Code on it, and most of the digging in this post (the benchmarks, the JIT logs, the failed attempts) comes from that session.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
