Tôi ngạc nhiên rằng sys.getsizeof(10000*[x])
là 40036 bất kể x: 0, "a", 1000 * "a", {}.
Có một số deep_getsizeof
xem xét đúng yếu tố chia sẻ bộ nhớ không?
(Câu hỏi đặt ra xuất phát từ nhìn vào bảng cơ sở dữ liệu trong bộ nhớ như phạm vi (1000000) -> tên tỉnh: danh sách hoặc dict?)
(Python là 2.6.4 trên ppc mac.)Python nhận được danh sách sâu với nội dung?
Added: 10000 * ["Mississippi"] là 10000 con trỏ đến một "Mississippi", như nhiều người đã chỉ ra. Hãy thử điều này:
nstates = [AlabamatoWyoming() for j in xrange(N)]
nơi AlabamatoWyoming() -> một chuỗi "Alabama" .. "Wyoming". Deep_getsizeof (nstates) là gì?
(Làm thế nào chúng ta có thể nói
- một deep_getsizeof thích: khó khăn, ~ gc tracer
- ước tính từ tổng vm
- bên trong kiến thức về việc thực hiện trăn
- đoán
. Đã thêm 25jan: cũng xem when-does-python-allocate-new-memory-for-identical-strings
Cảm ơn Pär, sẽ thử nó; cho thấy khó khăn như thế nào. Bất kỳ đồng nghiệp nào của bạn có lưu ý ngắn về việc lưu bộ nhớ bằng Python, câu trả lời sẽ trả lời ví dụ: phạm vi (1000000) -> tên tỉnh: danh sách hoặc dict? – denis
liên kết chết ở đó – MohamedEzz