C++ düşük gecikmeli uygulamalar için tasarım kalıpları
- Yazarlar: Paul Bilokon, Burak Gunduz
- Gönderim tarihi: 8 Eylül 2023
- Konu: Düşük gecikmeli kod optimizasyonu, özellikle yüksek frekanslı işlem (HFT) sistemlerine odaklanıyor
Başlıca katkılar
- Düşük gecikmeli programlama deposunun oluşturulması: Sıkı istatistiksel kıyaslama içeren pratik bir rehber
- Piyasa nötr istatistiksel arbitraj stratejisinin optimize edilmesi: Hız ve kârlılıkta önemli iyileşmeler
- Disruptor kalıbının C++ implementasyonu: Geleneksel kuyruklama yöntemlerine göre daha yüksek performans
Değerlendirme ölçütleri
- Hız
- Önbellek kullanımı
- İstatistiksel anlamlılık vb.
Temel teknikler
- Önbellek ısıtma: Önbelleği önceden başlatarak gecikmeyi azaltma
- Constexpr: Derleme zamanı sabit değerlendirmesiyle performansı artırma
Gelecek yönelimler
- Deponun genişletilmesi
- Optimize edilmiş işlem algoritmalarının gerçek zamanlı işlem ortamlarında test edilmesi
- Kapsamlı sistem kıyaslaması için Disruptor kalıbı ile işlem algoritmalarının entegre edilmesi
Hedef okur kitlesi
- Akademi ve endüstrideki uygulayıcılar
GN⁺ özeti
Bu makale, düşük gecikmeli uygulamaların, özellikle de yüksek frekanslı işlem sistemlerinin performansını artırmaya yönelik tasarım kalıplarını ele alıyor. Düşük gecikmeli programlama deposu ve Disruptor kalıbının implementasyonu, uygulayıcılar için yararlı bir rehber olabilir. Önbellek ısıtma ve Constexpr gibi teknikler, gecikmenin azaltılmasına büyük katkı sağlıyor. Bu makale, performans optimizasyonuyla ilgilenenler için oldukça faydalı olacaktır.
1 yorum
Hacker News görüşü
Konuya kısa bir giriş niteliğinde
Lisans öğrencileri temel performans optimizasyonu unsurlarını zaten biliyor
Performans düşüşü nedeni olan false sharing konusuna değinilmemesi şaşırtıcı
Optimizasyon ipucu özniteliklerine (
[[likely]],[[unlikely]]) de değinilmemesi şaşırtıcıİleri seviye performans optimizasyonu unsurları ele alınmıyor
Düşük gecikme programcıları için gerekli olan şey, gereksiz tahsisler ve kopyalamalara karşı tetikte olmaktır
Düşük gecikmeli bir sunucu yazarken vektör IO işlemlerinin küçük nesneleri ardışık bir buffer'a kopyalamaktan daha yavaş olabildiğini fark etti
Test sonuçları t-istatistiği ve p-değeri veriyor
Bu bölüm sanki LLM kullanılarak yazılmış gibi duruyor
5 yıl boyunca günde bir kez olan kapanış fiyatını analiz edip 65 mikrosaniyelik gecikmeyle spread hesaplama örneği tuhaf
C++ ile yazılmış bir hisse senedi borsası implementasyonunu paylaşıyor
Bir C++ logging library yazdığını anlatıyor
Derleme zamanında dispatch verimlidir çünkü hangi fonksiyonun çağrılacağı derleme aşamasında belirlenir
CppCon 2017 sunum materyalini paylaşıyor
High-frequency trading'in neden var olması gerektiğini sorguluyor