Go 1.27 beschleunigt kleine Speicherallokationen um bis zu 30 Prozent
Size-Specialized Memory Allocation
Go 1.27 führt größen-spezialisierte Speicherallokation ein: Für Allokationen bis 80 Bytes erzeugt der Compiler maßgeschneiderte mallocgc-Varianten pro Span-Klasse. Das macht Allokationen 20–30 % schneller und allokationslastige Programme bis zu 1 % schneller. Der Artikel erklärt, wie die Spezialisierung funktioniert, warum 80 Bytes der Sweet Spot sind und wie Instruction-Cache-Effekte minimiert wurden.
Wir hatten ursprünglich geplant, die größen-spezialisierte Allokation in Go 1.26 zu veröffentlichen, entschieden uns aber, ein weiteres Release abzuwarten, um zusätzliche Optimierungen vorzunehmen und die zusätzliche Codegröße so weit wie möglich zu reduzieren.