Tôi có một quy trình Python chạy dài đang tạo nhiều dữ liệu hơn tôi dự định. Kết quả của tôi được lưu trữ trong một danh sách sẽ được sắp xếp theo thứ tự (được chọn) và được ghi vào đĩa khi chương trình hoàn thành - nếu nó đạt đến mức đó. Nhưng ở tốc độ này, có nhiều khả năng danh sách sẽ cạn kiệt tất cả RAM 1 GB trở lên và quá trình này sẽ bị lỗi, mất tất cả kết quả của tôi trong quá trình.Cách truy cập cấu trúc dữ liệu từ quy trình Python hiện đang chạy trên Linux?
Tôi định sửa đổi kịch bản của mình để ghi kết quả vào đĩa theo định kỳ, nhưng tôi muốn lưu kết quả của quy trình hiện đang chạy nếu có thể. Có cách nào tôi có thể lấy một cấu trúc dữ liệu trong bộ nhớ từ một tiến trình đang chạy và ghi nó vào đĩa?
Tôi tìm thấy code.interact(), nhưng vì tôi không có móc này trong mã của tôi, nó không có vẻ hữu ích đối với tôi (Method to peek at a Python program running right now).
Tôi đang chạy Python 2.5 trên Fedora 8. Mọi suy nghĩ?
Thanks a lot.
Shahin
Bạn hy vọng sẽ làm gì với 'cấu trúc dữ liệu của quy trình hiện tại'? Nếu bạn lưu nó ra và tải nó trở lại trong, bạn sẽ không được chỉ là ra khỏi bộ nhớ như bạn đang bắt đầu với? –
Trong trường hợp cụ thể này, tôi sẽ chuyển nó sang một máy khác (với nhiều bộ nhớ hơn) để deserialize nó và viết nó ra từng phần hoặc tải nó trực tiếp vào cơ sở dữ liệu. Rõ ràng là không bền vững, nhưng tôi chỉ đang tìm giải pháp stopgap một lần ở đây. – Shahin