Lập trình Go 22/09/2026 10 phút

Tổng kết Go chuyên sâu: bản đồ 132 bài và hai con số gói lại cả sê-ri

Kết thúc 132 bài đo thật về runtime, hiệu năng và hệ thống Go. Bài này vẽ bản đồ toàn sê-ri theo tám chủ đề, và đo một benchmark tổng hợp gói lại hai bài học lớn nhất: stack nhanh hơn heap 14,5 lần với 0 cấp phát, và thêm core giúp thật nhưng dưới tuyến tính (10 core chỉ nhanh 4,6x). Cùng cách tư duy đọng lại sau tất cả.

Lập trình Go 22/09/2026 10 phút

unsafe.Pointer trong Go: bốn mẫu chuyển đổi hợp lệ, và quy tắc uintptr sống còn

unsafe.Pointer cho phép gạt kiểu an toàn sang bên, nhưng chỉ vài mẫu chuyển đổi là hợp lệ và được runtime bảo đảm. Đo thật trong Go 1.23: các mẫu đúng chạy sạch, go vet bắt mẫu sai lưu uintptr vào biến, và chuyển []byte sang string không sao chép nhanh gấp 136 lần.

Công cụ 22/09/2026 5 phút

tar và nén: vì sao tar không nén, và cái bẫy thứ tự cờ khiến bạn mất file

tar chỉ GỘP nhiều file thành một — nén là bước riêng (gzip/zstd/xz). Hiểu lầm này cùng cái bẫy thứ tự cờ -f khiến nhiều người tạo nhầm archive hoặc ghi đè mất dữ liệu. Bài này chạy thật: tar cf vs czf, so gzip vs zstd về kích thước và tốc độ, xem nội dung không cần giải nén, và minh chứng tar -cf data goi.tar báo lỗi.

Hệ thống 22/09/2026 5 phút

Theo dõi I/O của tiến trình: /proc/<pid>/io và bẫy page cache đánh lừa bạn

Máy chậm mà CPU vẫn rảnh? Có thể một tiến trình đang quật đĩa. /proc/<pid>/io cho biết nó đọc/ghi bao nhiêu byte. Bài này chạy thật: một tiến trình ghi 200MB hiện write_bytes=200MB; nhưng đọc file trong page cache cho rchar=100MB mà read_bytes=0 — dữ liệu từ RAM, không chạm đĩa. Biết đọc cột nào để không bị đánh lừa.