Ana Sayfa

C++23 için Yüksek Performanslı fast-containers Kütüphanesi

1 dk okuma

kressler::fast_containers, C++23 ve x86-64 mimarisi için tasarlanmış, yüksek performanslı, sadece başlık dosyalarından oluşan bir kapsayıcı (container) kütüphanesidir. Özellikle büyük veri yapılarıyla çalışırken standart kütüphane ve endüstriyel çözümlere kıyasla önemli hız avantajları sunar. Kütüphanenin temel bileşenleri arasında önbellek dostu, SIMD destekli arama yeteneğine sahip ve büyük sayfa (hugepage) desteği sunan bir B+tree uygulaması; B+tree düğümleri tarafından dahili olarak kullanılan sabit boyutlu sıralı bir dizi olan Dense Map; ve TLB (Translation Lookaside Buffer) isabet kaçaklarını ve bellek tahsis yükünü azaltan çeşitli Hugepage Allocator'lar (HugePageAllocator, MultiSizeHugePageAllocator, PolicyBasedHugePageAllocator) bulunmaktadır.

Yapılan performans testleri, fast_containers B+tree'sinin büyük ağaç boyutlarında (örneğin 10 milyon elemanlı ağaçlar) Abseil B+tree ve std::map'e göre ekleme, bulma ve silme işlemlerinde 2 ila 5 kat daha hızlı olduğunu göstermektedir. Bu performans artışları, özellikle TLB kaçakları ve bellek tahsis maliyetlerinin baskın olduğu senaryolarda belirginleşir. Abseil B+tree'ye kıyasla ana avantajları arasında hugepage allocator entegrasyonuyla gelen 3-5 kat hızlanma, AVX2 komut setini kullanan SIMD hızlandırmalı arama ile %3-10 daha hızlı düğüm aramaları ve anahtar/değer boyutlarına göre ayarlanabilir düğüm boyutları yer almaktadır.

Kütüphane, Linux üzerinde x86-64 CPU'lar ve AVX2 desteği ile geliştirilmiş ve test edilmiştir. C++23 derleyicisi (GCC 14+, Clang 19+), CMake 3.30+ ve AVX2 destekli bir CPU gerektirir. Proje, yapay zeka ajanlarının yazılım geliştirmedeki potansiyelini keşfetme amacıyla başlamış ve Claude'un yardımıyla hızla geliştirilmiştir.

İçgörü

Bu kütüphane, C++ uygulamalarında büyük veri setleriyle çalışırken bellek erişimini ve işlem hızını optimize ederek önemli performans kazanımları sağlıyor.

Kaynak