Pola desain untuk aplikasi C++ berlatensi rendah
- Penulis: Paul Bilokon, Burak Gunduz
- Tanggal pengajuan: 8 September 2023
- Topik: Optimasi kode berlatensi rendah, khususnya berfokus pada sistem perdagangan frekuensi tinggi (HFT)
Kontribusi utama
- Pembuatan repositori pemrograman berlatensi rendah: Panduan praktis yang mencakup benchmarking statistik yang ketat
- Optimasi strategi arbitrase statistik netral pasar: Peningkatan yang signifikan dalam kecepatan dan profitabilitas
- Implementasi pola Disruptor dalam C++: Peningkatan performa dibandingkan metode antrean tradisional
Metrik evaluasi
- Kecepatan
- Pemanfaatan cache
- Signifikansi statistik, dan lain-lain
Teknologi utama
- Cache warming: Mengurangi latensi melalui inisialisasi cache
- Constexpr: Meningkatkan performa melalui evaluasi konstanta pada waktu kompilasi
Arah ke depan
- Perluasan repositori
- Pengujian algoritme perdagangan yang telah dioptimalkan dalam lingkungan perdagangan waktu nyata
- Mengintegrasikan pola Disruptor dan algoritme perdagangan untuk benchmarking sistem yang komprehensif
Pembaca sasaran
- Praktisi di dunia akademik dan industri
Ringkasan GN⁺
Makalah ini membahas pola desain untuk meningkatkan performa aplikasi berlatensi rendah, khususnya sistem perdagangan frekuensi tinggi. Repositori pemrograman berlatensi rendah dan implementasi pola Disruptor akan menjadi panduan yang berguna bagi para praktisi. Teknik seperti cache warming dan Constexpr memberikan kontribusi besar dalam mengurangi latensi. Makalah ini akan sangat bermanfaat bagi mereka yang tertarik pada optimasi performa.
1 komentar
Komentar Hacker News
Ini adalah pengantar singkat tentang topik tersebut
Mahasiswa sarjana pada dasarnya sudah mengetahui elemen dasar optimisasi performa
Mengejutkan karena tidak membahas false sharing, yang merupakan faktor penurunan performa
Juga mengejutkan karena tidak membahas atribut petunjuk optimisasi seperti
[[likely]],[[unlikely]], dan sebagainyaTidak membahas elemen optimisasi performa tingkat lanjut
Yang dibutuhkan programmer low-latency adalah kewaspadaan terhadap alokasi, penyalinan, dan hal-hal lain yang tidak perlu
Saat menulis server low-latency, saya menyadari bahwa operasi vector I/O lebih lambat daripada menyalin objek kecil ke buffer berurutan
Hasil pengujian memberikan t-statistic dan p-value
Bagian ini terasa seperti ditulis menggunakan LLM
Contoh yang menganalisis harga penutupan sekali sehari selama 5 tahun dan menghitung spread dengan latensi 65 mikrodetik terasa aneh
Membagikan implementasi bursa saham yang ditulis dalam C++
Menulis library logging C++
Efisiensi compile-time dispatch berasal dari keputusan pemanggilan fungsi yang dilakukan pada tahap kompilasi
Membagikan materi presentasi CppCon 2017
Mempertanyakan apakah ada alasan mengapa high-frequency trading harus ada