我有一个python脚本,它使用numpy,sklearn和许多其他东西。这个脚本应该在线分析500kb大小的在线数千个wav文件。当我以并行模式运行时,这个脚本python几乎占用了所有内存。
我想知道是否有可能,例如,“编译”python脚本或做一些事情来使并行运行脚本更便宜。
提前谢谢!
答案 0 :(得分:0)
在python中没有 compile 这样的东西,即使存在隐式编译,但它与此问题无关。您可能正在耗尽内存,因为您没有控制应用程序中的并行进程/线程数。
您可以创建一个池,然后使用它来对资源消耗进行一定程度的控制。 来自多处理导入池
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
保持池大小等于处理器中的核心数,以获得最佳性能。