3
我有這引起了內存泄漏執行時一個python方法,本身在一個C庫發起與Python綁定我無法控制的泄漏:產卵過程是一種處理python內存泄漏的好方法嗎?
for i in range(10):
do_some_c_stuff() # Memory leaks at every invocation, not freed by garbage collector
我發現,如果我生成一個進程和然後終止它的內存被釋放:
for i in range(10):
p = multiprocessing.Process(target=do_some_c_stuff)
p.start()
p.join()
p.terminate() # Memory is freed up here, (by the OS?)
我的問題是 - 這是一個不錯的方式來處理這個問題,或者是有更好的東西我可以做什麼?
在功能上它確實聽起來像一個很好的解決方案(我假設你知道它爲什麼起作用)。要清楚的是操作的預期性能和/或頻率,因爲產卵過程不完全是免費和輕便的午餐。 – Pynchia
感謝Pynchia,我對應用程序進行了基準測試,不管這個過程是否有產卵技巧,它看起來都具有相同的性能 - 函數的執行時間遠遠超過產生過程的邊際成本。現在我會堅持使用這個解決方案,並最終研究解決C級的這個問題。 –