NexusFIX'i oluşturmaya sizi ne motive etti? Neden sadece QuickFIX kullanmıyorsunuz?
QuickFIX, 2000'li yılların başında C++98/03 deyimleri etrafında tasarlandı: sanal gönderim, mesaj başına yığın tahsisi, dize tabanlı alan depolama. Bu modeller temel olarak mikrosaniyenin altındaki gecikme gereksinimleriyle uyumsuzdur. İlk ilkelerden yola çıkarak, QuickFIX tasarlandığında mevcut olmayan C++23 yeteneklerini kullandık.
NexusFIX'in hedef kitlesi kimdir?
nexusfix.chatbot.faq.a2
NexusFIX sıfır yığın tahsisini nasıl başarır?
std::span<const char> görünümleri orijinal arabellekte std::string kopyalarının yerini alır. Önceden indekslenmiş diziler std::map'in yerini alır. std::pmr::monotonic_buffer_resource arena tahsisi sağlar. Sonuç: özel ayırıcı araçlarıyla doğrulanan, sıcak yolda sıfır malloc çağrısı.
NexusFIX hangi C++23 özelliklerini kullanıyor?
std::hata yönetimi için bekleniyor (geçişli yolda istisna yok), sıfır kopya veri görünümleri için std::span, derleme zamanı arayüz doğrulaması için kavramlar, derleme zamanı hesaplaması için konsteval ve [[olası]]/[[olası olmayan]] dallanma ipuçları.
Nasıl oluyor? SIMD ayrıştırma çalışıyor mu?
AVX2 talimatları bir seferde 32 bayt yükler ve SOH (\x01) sınırlayıcılarını paralel olarak bulmak için vektörleştirilmiş karşılaştırmayı kullanır. Bu, bayt bayt taramadan ~13 kat daha hızlıdır. Teknik, simdjson'dan ilham almıştır ancak FIX protokolü semantiğine uyarlanmıştır.
Hangi FIX sürümleri desteklenir?
FIX 4.4 tam desteğe sahiptir ve üretimde en yaygın olanıdır. FIX 5.0 + FIXT 1.1 ayrıca 4.4'e kıyasla yalnızca %2 ek yük ile tam desteğe sahiptir. Yapısal endeks sürümden bağımsızdır — alan taraması FIX sürümlerinde aynı şekilde çalışır.
NexusFIX üretime hazır mı?
NexusFIX aktif geliştirme aşamasındadır ve henüz üretim ticaret ortamlarında konuşlandırılmamıştır. Karşılaştırmalar, CPU sabitleme ve önbellek ısıtma özelliğine sahip kontrollü ortamlardan alınmıştır. Üretim güçlendirme ayrı bir mühendislik çalışmasıdır.
NexusFIX, Fix8 ile nasıl karşılaştırılır?
Fix8 (C++11), nesne havuzlarını ve sıfır kopyalama tekniklerini kullanır. NexusFIX, özel uygulamalar yerine C++23 standart kitaplık özelliklerinden (PMR, std::span, std::expected) yararlanarak ve Fix8'in sunmadığı SIMD hızlandırmalı ayrıştırmayı ekleyerek farklılık gösterir't have.