Tôi mất đến một giờ để đọc cấu trúc dữ liệu đồ thị NetworkX 1 GB sử dụng cPickle (1 GB khi được lưu trữ trên đĩa dưới dạng tệp nhị phân).Làm thế nào tôi có thể tăng tốc độ tháo các đối tượng lớn nếu tôi có nhiều RAM?
Lưu ý rằng tệp sẽ nhanh chóng tải vào bộ nhớ. Nói cách khác, nếu tôi chạy:
import cPickle as pickle
f = open("bigNetworkXGraph.pickle","rb")
binary_data = f.read() # This part doesn't take long
graph = pickle.loads(binary_data) # This takes ages
Làm cách nào để tăng tốc hoạt động cuối cùng này?
Lưu ý rằng tôi đã thử tẩy dữ liệu cả khi sử dụng cả hai giao thức nhị phân (1 và 2) và dường như không tạo ra sự khác biệt nhiều cho giao thức mà tôi sử dụng. Cũng lưu ý rằng mặc dù tôi đang sử dụng hàm "tải" (có nghĩa là "chuỗi tải") ở trên, nó đang tải dữ liệu nhị phân, chứ không phải dữ liệu ascii.
Tôi có 128 GB bộ nhớ RAM trên hệ thống tôi đang sử dụng, vì vậy tôi hy vọng rằng ai đó sẽ cho tôi biết cách tăng bộ đệm đọc được chôn vùi trong triển khai dưa.
Bạn có thực sự có nghĩa là 128 GB RAM không? Hoặc 128MB? –
Tôi có nghĩa là GB ram, không phải MB. – conradlee
cảm thấy đau của bạn ngay bây giờ .., – dcousens