Ana içeriğe geç
Programlama

C++ için derleme zamanında mükemmel özetleme kütüphanesi geliştirildi

Öne çıkanlar

  • C++23 destekli kütüphane derleme zamanında çakışmasız mükemmel özet fonksiyonları üretiyor.
  • Arama işlemleri döngü yerine 16 baytlık SIMD vektör karşılaştırmalarıyla yürütülüyor.
  • Apple M3 Max testlerinde standart std::unordered_map yapısına göre 13 kat hız elde edildi.
  • Sistem Apple M4 üzerinde saniyede bir milyar sorgu eşiğini aştı.

Daniel Lemire ve Francisco Geiman Thiesen, C++23 standartlarını kullanarak derleme zamanında kusursuz özetleme (perfect hashing) oluşturan yeni bir açık kaynak kütüphane yayımladı. Geliştirilen ConstexprCore/perfect_hash kütüphanesi, anahtarları önceden bilinen veri tablolarında çalışma zamanı çakışmalarını ortadan kaldırıyor. Dış bir kod üretici araca ihtiyaç duymayan bu yapı, constexpr işlevleri sayesinde derleme sırasında en uygun fonksiyonu hesaplıyor.

Yazılım mimarisi, GNU gperf tasarımını temel alan açgözlü bir algoritmayla karakter konumlarını ve ilişkilendirme değerlerini belirliyor. Çalışma zamanında arama maliyetini düşürmek için ARM ve x64 mimarilerindeki 16 baytlık vektör yazmaçlarından faydalanılıyor. Dize karşılaştırmaları, bellek sayfası sınırlarını gözeten ve dal tahmin hatalarını önleyen SIMD talimatlarıyla döngüsüz olarak tek adımda gerçekleştiriliyor.

Apple M3 Max işlemcide yapılan performans testlerinde, 20 standart HTTP başlık adı için arama süresi 1,3 nanosaniyeye (yaklaşık 5 döngü) kadar geriledi. Bu hız, standart kütüphanedeki std::unordered_map yapısına kıyasla 13 kat, gperf aracına kıyasla ise 6 kat performans artışı sağladı. Apple M4 işlemcide URL protokolleri test edilirken arama hızı saniyede bir milyar sorguyu aştı.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.