使用 Python 处理大文件有什么推荐的方式么?

2017-09-23 02:14:15 +08:00
 linuxchild

大概五六个 G 的文件,目前分割成了数个小文件,使用 multiprocessing 这种处理了一下,但是效率还是太低了

请问哪位有什么推荐的方法?

另外,我在尝试使用 pp 这个库,不过总是提示变量未定义,实际上已经定义了,使用 multiprocessing 这种都不会提示这个错误,使用的代码如下:

cpu_num = 8
job_server = pp.Server(cpu_num)
a =  []
for f in xxxxx:
    a.append(job_server.submit(func_name, (f, )))
for x in a:
    tmp = x()

有这方面经验的朋友帮一下忙,感谢

8004 次点击
所在节点    Python
46 条回复
likuku
2017-09-23 17:22:49 +08:00
找个能支持 CPU 硬件加解密加速器的库 /加解密库试试
jhdxr
2017-09-23 19:41:08 +08:00
最简单的答案是换 java/c/c++

有性能要求的 Python 永远不是第一选择
fiht
2017-09-23 19:50:57 +08:00
换 pypy 可解(应该
linuxchild
2017-09-23 20:48:32 +08:00
@laqow 问题应该是在加解密这里,读取存储试了一下如果没有加解密还是挺快的


@scys 感谢,回头试一下


@numoone 对,瓶颈是这里,很费资源,该考虑换一种方式了




@likuku 还能这样,我赶紧搜一下


@fiht 呜呜,服务器现在还是 py2.6 呢。。装 2.7 都得给运帷打申请


@jhdxr 那尝试一下 java 好了。。
afpro
2017-09-24 00:44:20 +08:00
这种玩意 感觉上 Cython 或者 Pypy 效果会很不错
linuxchild
2017-09-24 23:59:36 +08:00
@afpro 效果应该会好一些,但是可能还是不太符合性能上的要求。

我用 pp 库把 CPU 跑满了,最后可以跑出来,但是消耗的时间依然很久,感觉用集群处理比较合适。

准备看看怎么搞一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/392983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX