2016-04-29 94 views
-1

我有一個Python腳本是使用numpy,sklearn和很多其他的東西。這個腳本應該在線分析500kb大小的數千個wav文件。當我以並行模式運行時,這個腳本python幾乎消耗了所有的內存。如何加速python腳本並減少內存消耗?

我想知道是否有可能,例如,'編譯'python腳本或做一些事情,以便更便宜地並行運行腳本。

預先感謝您!

回答

0

在python中沒有這樣的東西,編譯,即使有一個隱含的編譯過程,但它與這個問題無關。您可能內存不足,因爲您沒有控制應用程序中並行進程/線程的數量。

您可以創建一個池,然後用它的工作有一定程度上的資源消耗的控制。 從多進口池

def f(x): 
    return x*x 

if __name__ == '__main__': 
    with Pool(5) as p: 
     print(p.map(f, [1, 2, 3])) 

你可以看一下這個鏈接查看更多細節 https://docs.python.org/3.5/library/multiprocessing.html

保持你的池的大小等於內核數量在您的處理器以獲得最佳性能。