Tôi đang xây dựng một từ điển dữ liệu lớn từ một tập hợp các tệp văn bản. Khi tôi đọc trong các dòng và xử lý chúng, tôi append(dataline)
vào một danh sách.Tại sao Python `Lỗi bộ nhớ` với danh sách` append() `nhiều RAM còn lại
Tại một số điểm, append()
tạo ra ngoại lệ Memory Error
. Tuy nhiên, xem chương trình chạy trong Trình quản lý tác vụ Windows, tại thời điểm xảy ra sự cố, tôi thấy 4,3 GB khả dụng và 1,1 GB miễn phí.
Vì vậy, tôi không hiểu lý do ngoại lệ.
Phiên bản Python là 2.6.6. Tôi đoán, lý do duy nhất là nó không thể sử dụng nhiều RAM sẵn có hơn. Nếu điều này là như vậy, có thể tăng phân bổ không?
Hãy thử sử dụng bản dựng Python 64 bit. Mặc dù nếu bạn đang sử dụng bất kỳ mô-đun mở rộng nào, thì chúng cũng sẽ cần phải được xây dựng 64 bit. –
Bạn có thể in chuỗi ngoại lệ 'MemoryError' không? Điều đó sẽ cung cấp cho chúng tôi thêm thông tin. – chrisaycock
Bạn có đang thêm trước hoặc sau khi xử lý các dòng không? – nmichaels