【发布时间】:2023-03-10 23:47:01
【问题描述】:
我目前参与了一个涉及处理大量数据的 Python 项目。在这种情况下,我必须将大量数据打印到文件中。它们总是单行的,但有时包含数百万位数。
Python 中的实际数学运算最多只需要几秒钟,最多几分钟。将它们打印到文件中最多需要几个小时;我并不总是有。
有什么方法可以加快 I/O 的速度吗?
据我所知,这个数字存储在 RAM 中(或者至少我认为是这样,它是唯一会占用 11GB RAM 的东西),但 Python 不会立即将它打印到文本文件中。有没有办法将该信息(如果是数字)转储到文件中?我试过任务管理器的转储,它给了我一个 22GB 的转储文件(是的,你没看错),它看起来不像我在里面找的东西,虽然不是很清楚。
如果有所作为,我有 Python 3.5.1(Anaconda 和 Spyder)、Windows 8.1 x64 和 16GB RAM。
顺便说一句,我确实在脚本中运行 Garbage Collect(gc 模块),并删除了不需要的变量,所以这 11GB 不只是垃圾。
【问题讨论】:
-
是写入终端还是文件?
-
@TadhgMcDonald-Jensen 一个文本文件。
-
hmmm,您也许可以将要写入的数据发送到队列并让另一个线程处理 IO,但我不确定它会不会有多大帮助。
-
@TadhgMcDonald-Jensen 这是一个有趣的想法......但是,我也不太确定它是如何工作的。 Python 没有那么灵活。
标签: python performance python-3.x file-io echo