HashSmith, Part 3: I Automated My Way to a 27% Faster Hash Table

Discussion: Reddit (r/java) · Hacker News This is Part 3 of a series on building a high-performance hash table for the JVM. Part 1 — Building a Fast, Memory-Efficient Hash Table in Java (by borrowing the best ideas): designing a SwissTable-style map from scratch — control bytes, SWAR probing, and why open addressing beats chaining for cache locality. Part 2 — Further Optimizing my Java SwissTable: Profile Pollution and SWAR Probing: hunting down a surprising Objects.equals() hotspot, and why SWAR beat the Vector API on both ARM and x86. Part 3 (this post): handing the profiler to an AI agent — and what it found. Part 3: letting the agent drive At the end of the last post, I had a SwissMap that felt genuinely fast: the Objects.equals() profile pollution was gone, SWAR had beaten the Vector API on both ARM and x86, and I finally had benchmarks I was willing to trust. ...

April 5, 2026 · 17 min · Donghyung Ko
Diagram of the 3-stage SimpleMem pipeline

[Paper Review] SimpleMem: Efficient Lifelong Memory for LLM Agents

This post is a review of SimpleMem: Efficient Lifelong Memory for LLM Agents. Some parts of the paper have been updated after this post was written (2026-01-24), so there may be differences from the version discussed here. Background LLMs are fundamentally stateless. As a result, previous inference outputs do not directly affect later outputs. Because of this property, a plain LLM can fail to maintain continuity in long conversations. In other words, it may look like short-term memory loss, where it cannot remember what was just discussed. ...

January 24, 2026 · 5 min · Donghyung Ko