Lập trình 10/11/2026 6 phút

Rust đo thật — xử lý lỗi: Result bọc trên đường thành công gần như miễn phí (chênh 0,4% so với trả giá trị trần), còn panic tháo cuộn ngăn xếp tốn 1585 ns mỗi lần nên đắt hơn hàng nghìn lần; panic=abort còn cắt bớt vài KB mã tháo cuộn khỏi nhị phân

Phần 9 sê-ri Rust đo thật: Rust tách lỗi lường trước (Result<T,E>) với lỗi không phục hồi/bug (panic) — giá khác nhau hàng nghìn lần. Đo trong container rust 1.99.1: Result<u64,E> chiếm 16 byte, nhưng Result<(),E> chỉ 1 byte nhờ niche. Trên đường thành công, bọc kết quả vào Result rồi match gần như miễn phí: 500 triệu lần gọi, Result 383,9 ms vs u64 trần 385,6 ms — chênh 0,4%. Ngược lại, panic tháo cuộn ngăn xếp rất đắt: panic + catch_unwind tốn 1585 ns/lần, trả Err gần như 0 — đắt gấp hàng nghìn lần, không dùng panic cho luồng điều khiển. panic=abort cắt ~6 KB mã tháo cuộn khỏi nhị phân.