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

Cùng một cách song song hóa: vòng này SIMD chỉ nhanh 1,12 lần, vòng kia 2,49 lần

Tưởng vector hóa cho Nx, đa luồng cho số-lõi lần, nhân lại ra tích? Tôi đo: một vòng memory-bound chỉ được 1,12 lần từ SIMD dù mã máy có lệnh vector (băng thông chặn), còn vòng compute-bound được 2,49 lần từ SIMD ngay trên một lõi. Tăng tốc phụ thuộc nút thắt, không phải kỹ thuật.

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

Một lần chạy nói 'tối ưu này chậm 2,9 lần' — lặp 15 lần lấy min: hóa ra nhanh 4,36 lần

Tưởng chạy một lần mỗi bên rồi so là đủ để biết một thay đổi đồng thời có đáng? Tôi đo: một lần chạy trúng nhiễu (outlier 13ms) đảo ngược cả kết luận — nói padded chậm 2,9 lần trong khi thật ra nó nhanh 4,36 lần. Nhiễu chỉ cộng, không trừ — nên phải lặp và lấy min.

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

45 phép đo về code đồng thời, và một sự thật: trực giác của bạn gần như luôn sai

Bài kết của sê-ri 45 phần đo thật về đồng thời. Ba tầng bài học và những con số đáng nhớ — tạo luồng 47µs, 10 lõi chỉ 4,65 lần, atomic tranh chấp chậm 27 lần, false sharing 4 lần — cùng một điều xuyên suốt: với đồng thời, đoán thì sai, chỉ đồng hồ mới nói thật.

Spring 05/08/2026 7 phút

Hàng đợi @Async mặc định của Spring phình tới hết heap, và @Scheduled với ba bản sao chạy ba lần

@Async như giao việc cho một tổ thư ký nhỏ có cái khay đựng việc; @Scheduled như cái đồng hồ báo thức treo trên tường VĂN PHÒNG NÀY. Pool từ chối việc, tự gọi chạy đồng bộ, ngoại lệ bị nuốt, và cách chạy định kỳ đúng khi có nhiều bản sao.