<?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>Memory on Pavel Guzenfeld</title><link>https://pavelguzenfeld.com/tags/memory/</link><description>Recent content in Memory on Pavel Guzenfeld</description><image><title>Pavel Guzenfeld</title><url>https://pavelguzenfeld.com/images/og-default.png</url><link>https://pavelguzenfeld.com/images/og-default.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 20 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://pavelguzenfeld.com/tags/memory/index.xml" rel="self" type="application/rss+xml"/><item><title>ZII and Arena Allocators in C++: Zero Is Initialization, Benchmarked</title><link>https://pavelguzenfeld.com/posts/cpp-zii-arena-allocator/</link><pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate><guid>https://pavelguzenfeld.com/posts/cpp-zii-arena-allocator/</guid><description>ZII designs every type so all-zero bytes is a valid default, and pairs it with arenas that free a whole group at once. RAII ties cleanup to each object. Here is how the two differ, where ZII falls short, a 20-line arena, and a nanobench run of 1000 allocations per frame: arena, std::pmr, malloc, calloc and new, with a live Godbolt session. Plus a struct-of-arrays layout, a Cortex-A78AE run, and the Jetson Orin GPU, then one CPU+GPU frame that uses all of it: 3.3x faster per frame.</description></item></channel></rss>