Ulasan Tonari tentang implementasi konferensi video "real-time"
→ Latensi Zoom dan WebRTC adalah 315-500ms
Daripada menyentuh 750 ribu baris stack WebRTC demi mencapai latensi 130ms yang benar-benar setara real-time, mereka memutuskan untuk merancang seluruh stack dari nol agar sesuai dengan hardware yang diinginkan lalu mengimplementasikannya ulang
→ Memilih Rust untuk keamanan, performa, dan kemudahan pemeliharaan
Crate yang terutama digunakan
→ Yang lebih baik daripada pustaka standar: crossbeam, parking_lot, bytes, socket2
→ Untuk mempercantik log dan CLI: fern, structopt
→ Pembantu cargo: cargo-release, cargo-udeps, cargo tree, cargo-geiger, cargo-flamegraph
Hal-hal yang sulit dari Rust
-
Waktu kompilasi lama
-
Cakupan library kurang memadai
-
Menuntut penulisan kode yang tepat dan jelas sejak awal
-
Inferensi tipe terlalu kuat sehingga kadang terasa seperti memakai bahasa bertipe dinamis
-
Bahasanya masih terus berkembang
Hasil dari memilih Rust
-
Tidak mengalami downtime yang berkaitan dengan software
-
Berkat penggunaan resource yang efisien, mereka bisa dengan mudah menulis kode berperforma tinggi
-
Penggunaan CPU dan memori sama-sama dapat diprediksi dan konsisten
-
Menjamin latensi dan frame rate yang konsisten
-
Pengalaman merawat codebase juga sangat baik
-
Pada akhirnya mereka membangun produk yang dapat dipelihara dan dapat diandalkan, dengan performa cepat dalam frame rate, latensi, dan efisiensi resource
→ Akan sulit tanpa Rust
Belum ada komentar.