Bahasa pemrograman Zig telah membuat kemajuan signifikan dalam mencapai salah satu tujuan utamanya: waktu kompilasi yang lebih cepat. Pengujian dunia nyata dengan proyek terminal emulator Ghostty menunjukkan peningkatan kecepatan yang substansial pada Zig 0.15.1, meskipun sebagian besar build masih mengandalkan LLVM daripada backend self-hosted Zig.
Performa Build Script Menunjukkan Peningkatan Dramatis
Peningkatan paling mencolok datang dari kompilasi build script, yang turun dari lebih dari 7 detik di Zig 0.14 menjadi hanya 1,7 detik di versi 0.15.1. Ini merepresentasikan peningkatan kecepatan sekitar 76% untuk langkah kompilasi awal yang harus diselesaikan setiap build baru. Meskipun developer yang bekerja pada proyek yang sudah mapan mungkin tidak merasakan ini setiap hari, hal ini secara signifikan berdampak pada pengguna pertama kali yang melakukan build dari source.
Build Aplikasi Lengkap Mengalami Pengurangan yang Berarti
Build Ghostty lengkap mengalami peningkatan dari 41 detik menjadi 32 detik, pengurangan 22% dalam total waktu build. Diskusi komunitas mengungkapkan pendapat yang beragam tentang apakah peningkatan seperti ini penting dalam praktiknya. Beberapa developer berargumen bahwa waktu kompilasi kalah jauh dibandingkan waktu yang dihabiskan untuk menulis dan memahami kode, sementara yang lain menekankan bahwa siklus iterasi yang lebih cepat meningkatkan produktivitas dan mempertahankan flow state selama pengembangan.
Setiap penundaan antara menulis kode dan melihat hasilnya adalah ruang kosong di pikiran saya di mana gangguan dapat masuk.
Perbandingan Waktu Build Zig 0.14 vs 0.15.1
| Jenis Build | Zig 0.14 | Zig 0.15.1 | Peningkatan |
|---|---|---|---|
| Kompilasi Build Script | 7det 167ms | 1det 702ms | ~76% lebih cepat |
| Full Uncached Ghostty Binary | 41det | 32det | 22% lebih cepat |
| Incremental Build ( Ghostty Executable) | 19det | 16det | 16% lebih cepat |
| Incremental Build (libghostty-vt) | 2det 884ms | 975ms | 66% lebih cepat |
Catatan: libghostty-vt menggunakan backend x86_64 self-hosted Zig , sementara build lainnya masih menggunakan LLVM
Backend Self-Hosted Menunjukkan Harapan untuk Peningkatan Masa Depan
Hasil paling menjanjikan datang dari komponen yang dapat menggunakan backend x86_64 self-hosted Zig alih-alih LLVM. Waktu rebuild library libghostty-vt turun dari hampir 3 detik menjadi di bawah 1 detik ketika menggunakan backend native. Waktu build di bawah satu detik ini merepresentasikan arah yang dituju Zig seiring dengan matangnya compiler self-hosted.
Anggota komunitas mencatat bahwa pendekatan ini berbeda dari bahasa seperti Rust, yang telah mencapai build incremental yang cepat melalui sistem caching yang canggih. Strategi Zig berfokus pada membuat compiler itu sendiri secara fundamental lebih cepat daripada mengandalkan terutama pada caching artifact build.
Strategi Backend Compiler Memicu Perdebatan Teknis
Diskusi seputar penggunaan LLVM mengungkapkan perspektif industri yang lebih luas tentang desain compiler. Beberapa anggota komunitas memandang LLVM sebagai jebakan yang memberikan bootstrapping cepat dan manfaat optimisasi tetapi membatasi kemampuan tuning performa jangka panjang. Yang lain menunjuk pada contoh sukses seperti Go, yang membangun code generation sendiri dari awal, dan TCC (Tiny C Compiler), yang tetap tak tertandingi untuk kecepatan kompilasi murni.
Percakapan juga menyentuh backend alternatif seperti Cranelift, yang digunakan dalam beberapa proyek Rust, meskipun perbandingan performa menunjukkan bahwa biasanya menghasilkan kode 24% lebih lambat daripada output yang dioptimalkan LLVM. Ini menyoroti trade-off antara kecepatan kompilasi dan performa runtime yang harus dinavigasi oleh desainer compiler.
Peningkatan ini di Zig 0.15.1 merepresentasikan hanya awal dari perjalanan kecepatan kompilasi bahasa ini. Seiring dengan stabilnya backend self-hosted dan matangnya fitur kompilasi incremental, tim pengembangan mengharapkan peningkatan yang bahkan lebih dramatis di tahun-tahun mendatang.
Referensi: Zig Builds Are Getting Faster
