Tokio chậm bất thường — một dòng blocking giấu trong async
Sự cố thật: p99 nhảy từ 45ms lên 2,1 giây vì một hàm blocking nằm trong async task. Cách tìm ra và sửa bằng spawn_blocking của Tokio.

THE ENGINEERING JOURNAL
Các bài viết về performance.
Sự cố thật: p99 nhảy từ 45ms lên 2,1 giây vì một hàm blocking nằm trong async task. Cách tìm ra và sửa bằng spawn_blocking của Tokio.

Span<T> và Memory<T> trong .NET giúp cắt chuỗi, parse dữ liệu trên đường nóng mà không cấp phát thêm bộ nhớ — kèm cái bẫy khi gặp async.

Vì sao biến nhỏ trong Go vẫn bị đẩy lên heap? Cách đọc output -gcflags=-m, mấy kiểu code hay gây cấp phát, và đo lại bằng benchmark.

PostgreSQL có nhiều loại index hơn bạn nghĩ. Từ B-tree đến BRIN — học cách chọn đúng index cho từng loại query với EXPLAIN ANALYZE thực tế.
Cache là chìa khóa performance cho hệ thống backend. Tìm hiểu 3 pattern caching phổ biến nhất với Redis: Cache Aside, Read Through, Write Through — code kèm ví dụ thực tế.
Rust không có garbage collector như Java hay Go, nhưng vẫn an toàn bộ nhớ nhờ Ownership. Tìm hiểu cách Rust làm điều đó và tại sao nó thay đổi cách bạn nghĩ về memory management.

Database Index — cấu trúc dữ liệu thần kỳ giúp query tốc độ từ O(n) thành O(log n). Cùng mình tìm hiểu B-Tree, cách index hoạt động, và kinh nghiệm dùng index trong thực tế.
Cache là một trong những kỹ thuật cơ bản nhất trong system design, nhưng dùng sai còn hại hơn không dùng. Bài này giải thích các pattern cache phổ biến và cái bẫy cache invalidation.