在我的项目中,为了提高处理速度,我实现了python-multiprocessing。我在一个4核心系统中测试了它。但处理时间只减少了25%左右。
这里是一个示例代码:
t1 = time.time()
p = Pool()
p.map(functin, file_list)
p.close()
p.join()
print '==========================================================='
print 'Pool put resume took := ',time.time() - t1
print '==========================================================='理论上,处理时间应该减少1/4,因为有4个核正在执行该函数,而不是单个的。我还与任务管理器进行了检查,并确认有4个进程正在运行。因此,请任何人解释,为什么它没有显示出显着减少处理时间。我错过任何配置了吗?
发布于 2017-03-03 06:54:24
从您展示的代码中,我看到您将一些函数应用于名为file_list的东西,因此在您的函数中,您可以处理文件。在这种情况下,我猜您的代码花在I/O上的时间最多,其性能受到硬盘驱动器速度的限制,而不是核数的限制。
https://stackoverflow.com/questions/42571325
复制相似问题