Vì sao không nên dùng kiểu int64 trong vòng lặp

image
Mọi người cho em hỏi tại sao kiểu dữ liệu int64 lại không sử dụng làm biến chạy trong vòng lặp for ạ?(Em tra google mà không có câu trả lời). Em xin cảm ơn

Vì trong hầu hết trường hợp thì bạn không cần phải duyệt 18 tỷ tỷ phần tử, nên giả sử nếu bạn chỉ cần duyệt 1 triệu phần tử nhưng dùng int64 thì sẽ lãng phí thêm 4 bytes

7 Likes

Cũng như @interloper đã trả lời.
Giải thích thêm: 9 tỷ tỷ nếu quy cho mỗi phần tử cần lặp trong mảng chỉ chiếm 1 byte thì tổng cũng xấp xỉ 9 tỷ tỷ bytes tức 9 exabyte (EB) nghĩa là bạn sẽ duyệt đến tối đa 9 tỷ tỷ byte trên bộ nhớ RAM. Mà bạn cũng biết, RAM giờ chỉ tính bằng Gigabyte (GB - tỷ byte) chứ không có RAM nào to đến mức EB.

Việc dùng int64 quá nhiều cũng gây hao bộ nhớ vô ích khi gần như 4 byte không dùng đến.

7 Likes

Nó tùy vào từng trường hợp.
Trường hợp duyệt rất nhiều phần tử nhưng vẫn ít hơn 2 tỷ thì không nên dùng vì nó lãng phí hiệu năng tính toán.
Những trường hợp duyệt số phần tử lớn hơn thì tất nhiên dùng int64.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?