Bài viết mới nhất

Tổng 1772 bài
Giải thuật 03/09/2026 9 phút

Spinlock nhanh hơn mutex 1,7 lần — rồi chậm hơn 36 lần khi đông luồng

Tưởng spinlock luôn nhanh hơn mutex vì không vào nhân? Tôi đo: ở tranh chấp thấp và ít luồng, spinlock nhanh 1,7 lần; nhưng đông luồng hoặc vượt số lõi thì spinlock đốt CPU quay vô ích và chậm hơn mutex 7 đến 36 lần, trong khi mutex gần như phẳng. Không có cái luôn thắng — chọn theo hoàn cảnh, không theo khẩu hiệu.

Giải thuật 03/09/2026 5 phút

Khi 'perf' báo Operation not permitted mà vẫn đo được branch-miss

Người ta bảo muốn biết cache-miss hay branch-miss thật thì phải có perf và bộ đếm phần cứng. Máy tôi đo thì perf còn chẳng chạy — VM khóa luôn PMU. Vậy mà chỉ với một cái đồng hồ và một thí nghiệm đổi đúng một biến, branch-miss vẫn hiện ra rõ mồn một, chậm gần 7 lần.

Giải thuật 03/09/2026 6 phút

Đo, đừng đoán — điều duy nhất tôi muốn bạn giữ lại

Khép lại sê-ri 45 bài đo kiến trúc máy tính. Nếu quên hết mọi con số, chỉ cần nhớ một câu: đừng tin trực giác về hiệu năng, hãy viết một phép đo và chạy nó trên chính máy mình. Vì cùng một thao tác có thể nhanh chậm khác nhau chục đến nghìn lần, và mỗi cỗ máy lại một khác.

Giải thuật 03/09/2026 6 phút

Đổi hai dòng vòng lặp, nhân ma trận nhanh gấp 3 mà không thêm phép tính nào

Cùng một phép nhân ma trận, cùng đúng 2,1 tỷ phép nhân-cộng, tôi chỉ hoán vị hai vòng lặp mà tốc độ nhảy từ 2,65 lên 8,13 GFLOP/s. Không phải phép màu — là cache. Big-O đếm số phép, nhưng cách bạn đi qua dữ liệu mới là thứ quyết định code chạy nhanh hay lết.