使用pandas
对数据进行处理,想要看一下处理的进度,之前使用tqdm
包来显示进度条,现在发现有一个改进的包p_tqdm
,可以并行处理。但在实际处理中,p_map
的运行速度非常慢,(map
简单的加函数,大概每秒200多个),速度小于t_map
,更是远远慢于python内建的map
函数。
看了一下p_tqdm
的实现,它在line 68
进行并行处理的时候调用的是multiprocessing.ProcessingPool
的imap
,这样做虽然不会爆内存,但是生成器的速度满了很多。
源代码
map_type = 'imap' if ordered else 'uimap'
最简单的修改就是将imap
改为map
map_type = 'map' if ordered else 'uimap'
修改后,pmap
的运行速度变得可以接受,但在实际测试的过程中,发现仍然是p_map
慢于t_map
慢于map
。