64-Bit-Wort statt Rust-Enum: Interpreter 17% schneller

Replacing a Rust Enum with a 64-Bit Word Made My Interpreter 17% Faster

64-Bit-Wort statt Rust-Enum: Interpreter 17% schneller

In seinem Blog beschreibt Maxime Chevalier-Boisvert, wie er den Value-Typ seines interpretierten Sprachprojekts Plush von einem 16-Byte-Rust-Enum auf ein 64-Bit-Wort mit Low-Bit-Tagging umgestellt hat. Dadurch wurde die Speichernutzung gesenkt und die Performance um 17% gesteigert. Der Beitrag erläutert das Design der neuen Darstellung, die Fixnums, Flonums, Immediates und zwei Arten von Zeigern codiert, sowie die Implementierung effizienter Operationen und die selbst-taggende Flonum-Darstellung. Die Änderung zeigt, dass sich Speicher- und Zeiteffizienz nicht ausschließen müssen.

Es mag nach keiner großen Sache aussehen, aber wenn man ein großes Array von Werten hat, wird dieses Array am Ende eine Menge leerer, verschwendeter Bytes enthalten – das ist die Art von Ding, die VM-Ingenieure nachts weinen lässt.

Mehr von diesem Tag

2026-09-08