簡體   English   中英

One Big Process或許多小流程的內存使用情況是否更好?

[英]Is memory usage better with One Big Process or many small Processes?

我有一個需要內存的應用程序,它遍歷一對數組,處理每個元素組合。 目前這個腳本非常需要RAM。 它最終使用大約3GB的RAM。

我的問題是:

在一個大型流程中處理每個元素組合是否更節省內存? 或者,為每個組合啟動一個新的子流程更好。

換句話說,做選項1是否更好:

for i in param_set1:
    for j in paramset2:
        Do_A_Big_Job(i, j)

或選項2:

import subprocess

for i in param_set1:
    for j in paramset2:
        subprocess.call([Do_A_Big_Job_Script, i, j])

“更好”,我的意思是“使用更少的RAM”。

謝謝!

編輯我對內存使用情況非常好奇。 當進程結束時,UNIX系統是否會釋放該內存? 對於編寫得相當好的腳本,這比python的垃圾收集更有效嗎? 我沒有很多可用的內核,所以我希望多個進程或多或少並行運行。

運行單個進程當然會占用較少的RAM,但這會使得利用多個cpus / core變得困難。

如果您不關心需要多長時間,請運行一個過程。

作為妥協,您可以一次只運行幾個進程,而不是一次性啟動它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM