需要统计服务器上的视频信息,写了个脚本,使用 MediaInfo 获取视频信息,但是因为文件数量比较多,便利效率比较低(单进程每秒 1.5 个文件),后来使用了 Multiprocessing 多进程,可以达到效率是高了,但是一个小时也才能获取到 1.5 万左右的文件信息。
求问,有什么比较好的方法可以较高提高效率么?
注:视频文件在文件服务器上,千兆网络挂载过来,使用了 Multiprocessing 后,遍历时速度带宽大约到了 800~900M,主要代码如下:
pool_size = multiprocessing.cpu_count() * 2 - 4
with multiprocessing.Pool(pool_size) as Pool:
walk = os.walk(path)
fn_gen = itertools.chain.from_iterable((os.path.join(root, file) for file in files) for root, dirs, files in walk)
Pool.map(video_handler, fn_gen)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.