Tôi nghĩ rằng tôi sẽ đưa thêm một số dữ liệu vào cuộc thảo luận.
Tôi đã chạy một loạt các thử nghiệm về vấn đề này.
Bằng cách sử dụng resource
gói python, tôi đã sử dụng bộ nhớ trong quá trình của mình.
Và bằng cách ghi csv vào StringIO
bộ đệm, tôi có thể dễ dàng đo kích thước của nó theo byte.
Tôi đã chạy hai thử nghiệm, mỗi thử nghiệm tạo ra 20 khung dữ liệu có kích thước tăng dần từ 10.000 dòng đến 1.000.000 dòng. Cả hai đều có 10 cột.
Trong thử nghiệm đầu tiên, tôi chỉ sử dụng float trong tập dữ liệu của mình.
Đây là cách bộ nhớ tăng lên so với tệp csv dưới dạng một hàm của số dòng. (Kích thước tính bằng Megabyte)
Thử nghiệm thứ hai, tôi có cùng cách tiếp cận, nhưng dữ liệu trong tập dữ liệu chỉ bao gồm các chuỗi ngắn.
Có vẻ như mối quan hệ giữa kích thước của csv và kích thước của khung dữ liệu có thể khác nhau khá nhiều, nhưng kích thước trong bộ nhớ sẽ luôn lớn hơn theo hệ số 2-3 (đối với kích thước khung trong thử nghiệm này)
Tôi rất muốn hoàn thành câu trả lời này với nhiều thử nghiệm hơn, hãy bình luận nếu bạn muốn tôi thử điều gì đó đặc biệt.
top
và sau đóShift + M
để sắp xếp mức sử dụng bộ nhớ của tôi.