問題:
在多處理中,如何共享一個大型的、可讀取的物件僅數組或任意Python 物件跨多個進程而不會產生記憶體開銷?
答案:
在使用寫時複製fork() 語義的作業系統中,未更改的資料結構仍然可供所有子進程使用,而無需額外的記憶體消耗。只需確保共享物件保持不變即可。
對於數組:
高效方法:
可寫入共享物件:
多處理提供兩個方法:
任意 Python 物件:
最佳化問題:
開銷在提供的程式碼片段中觀察到的情況不是由記憶體複製引起的。相反,它源自於函數參數(arr 數組)的序列化/反序列化,這在使用 Manager 代理程式時會導致效能損失。
以上是如何在多處理中共享大型唯讀數組和 Python 物件而不產生記憶體開銷?的詳細內容。更多資訊請關注PHP中文網其他相關文章!