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

Finalizer trong Go: vì sao runtime.SetFinalizer là công cụ nguy hiểm, đo thật cạm bẫy

SetFinalizer đăng ký hàm chạy khi object thành rác, nghe tiện để dọn tài nguyên nhưng đầy cạm bẫy. Đo thật: finalizer chỉ chạy sau GC (0 trước), bất đồng bộ (9998/10000), giữ object sống thêm một chu kỳ GC (19MB vs 0MB), và KHÔNG chạy nếu chương trình thoát trước GC. Go 1.23.

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

Connection pool tự viết trong Go: tái dùng tài nguyên tốn kém bằng buffered channel

Connection pool giữ sẵn các kết nối và tái dùng thay vì mở/đóng liên tục. Đo thật trong Go 1.23: một pool dựng bằng buffered channel tái dùng 3 kết nối cho 10 lần dùng, có timeout khi cạn, và nhanh hơn tạo mới mỗi lần hàng nghìn lần khi kết nối tốn 5ms bắt tay.