Tôi có chương trình Python mất khoảng 10 phút để thực thi. Vì vậy, tôi sử dụng Pool
từ multiprocessing
để tăng tốc:Quy trình liên tục Đăng hồ sơ Python
from multiprocessing import Pool
p = Pool(processes = 6) # I have an 8 thread processor
results = p.map(function, argument_list) # distributes work over 6 processes!
Nó chạy nhanh hơn nhiều, chỉ cần từ đó. Chúa ban phước cho Python! Và tôi nghĩ đó sẽ là nó.
Tuy nhiên tôi đã nhận thấy rằng mỗi khi tôi làm điều này, các quy trình và trạng thái có kích thước đáng kể của chúng vẫn còn, ngay cả khi p
đã hết hạn; hiệu quả, tôi đã tạo ra một rò rỉ bộ nhớ. Các quá trình hiển thị trong ứng dụng Màn hình hệ thống của tôi như các quy trình Python, không sử dụng CPU vào thời điểm này, nhưng bộ nhớ đáng kể để duy trì trạng thái của chúng.
Hồ bơi có chức năng close
, terminate
và join
và tôi giả định một trong số đó sẽ giết các quy trình. Có ai biết đó là cách tốt nhất để nói với hồ bơi của tôi p
rằng tôi đã kết thúc với nó?
Cảm ơn rất nhiều sự giúp đỡ của bạn!