如何加快 PyPy3 中的文件 I/O 速度?

问题描述 投票:0回答:1

在 CPython 中,我可以使用

lines = f.read().splitlines()
在 11 秒内读取一个 1.6 GB 的文件,而在 PyPy3 中,完全相同的代码需要 2 分钟才能读取该文件。使用
f.read().split('\n')
可以在 1 分钟内完成,但仍然比 CPython 慢很多。我想使用 PyPy 的原因是我稍后在
lines
上执行的循环在 PyPy 中要快得多,但我仍然很好奇为什么 PyPy 在文件 I/O 方面比 CPython 慢,以及我如何可能加快它的速度.

io cpython pypy
1个回答
0
投票

pypy3.10-7.3.13
仍然存在同样的问题。

根据我的个人资料,pypy 中的字符串操作可能会很慢。

例如官方文档中提到了字符串调整大小的性能问题。

https://doc.pypy.org/en/latest/cpython_differences.html#performance-differences

建议使用:

parts = []
for string in mylist:
    parts.append(string)
s = "".join(parts)

而不是

str + str

我分析并意识到

str.format
也很慢。

如果代码对大文件进行大量字符串连接,我的建议是不要使用

pypy

© www.soinside.com 2019 - 2024. All rights reserved.