Teknologi
Penyaringan Tanpa Cabang Mempercepat Penyaringan Irisan Angka

Penulis, greyblake, sedang mengoptimalkan jalur panas dalam kode yang menyaring irisan angka lebih besar dari ambang batas, masalah umum dalam basis data. Benchmark pada laptop Intel i7-10875H dengan satu juta nilai f64 acak menunjukkan bahwa kasus filter 50% adalah yang paling lambat, meskipun hanya menyalin setengah data, karena cabang yang tidak dapat diprediksi menyebabkan salah prediksi pipeline CPU, menghabiskan 15-20 siklus setiap kali. Mengurutkan input membuat kode yang sama lebih cepat, tetapi pengurutan bukan perbaikan praktis.
Sebagai gantinya, pendekatan tanpa cabang selalu menulis elemen dan menggunakan hasil perbandingan sebagai angka untuk memutuskan di mana menempatkannya, mengubah ketergantungan kontrol menjadi ketergantungan data. Kasus terburuk membaik dari 3,87 ms menjadi sekitar 1 ms, dan kinerja menjadi datar terlepas dari distribusi data. Trade-offnya adalah versi tanpa cabang selalu menulis, berpotensi meningkatkan lalu lintas memori, tetapi kecepatan yang diperoleh signifikan.
Sumber: Hacker News