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

Bounds check elimination trong Go: đo thật và vì sao chiêu reslice có thể phản tác dụng

Mỗi truy cập slice phải kiểm biên để an toàn bộ nhớ; compiler xoá check khi chứng minh được chỉ số hợp lệ. Đo thật: vòng range và i<len(xs) đã 0 check sẵn, nhưng check biên hiện đại rất rẻ (~0,05 ns) — và chiêu reslice để gợi ý BCE ở đây còn chậm hơn. Go 1.23.

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

Devirtualization trong Go: khi lời gọi interface biến thành một phép cộng

Nếu compiler chứng minh được kiểu động sau interface lúc biên dịch, nó thay dispatch động bằng lời gọi trực tiếp rồi inline luôn. Đo thật: một lời gọi interface co xuống còn một lệnh ADD (không itab, không CALL), nhanh hơn dispatch động ~3,8 lần. Điều kiện để nó xảy ra. Go 1.23.