Python 如何确定文件I/O的最大读取缓冲区大小

Python 如何确定文件I/O的最大读取缓冲区大小,python,optimization,io,cython,Python,Optimization,Io,Cython,我试图为Stata文件类型优化一个二进制读取器,并且对文件中的每个记录延迟评估当前实现。随着文件大小的增加,读卡器的速度会很快降低 当我问最初写这篇文章的人为什么要用发电机时,他说要小心记忆。我得到的建议是一次读取并处理文件中较大的数据块,我想知道如何判断在不进入虚拟内存的情况下可以读取的最大数据块是什么 一些旁注 为什么读取和处理大数据块要比处理小数据块快。被多次调用的开销加起来这么快吗 我很想看看我是否可以通过在赛昂试一试来获得更大的速度增益。有没有人知道我可以看一看带有二进制文件读取器的

我试图为Stata文件类型优化一个二进制读取器,并且对文件中的每个记录延迟评估当前实现。随着文件大小的增加,读卡器的速度会很快降低

当我问最初写这篇文章的人为什么要用发电机时,他说要小心记忆。我得到的建议是一次读取并处理文件中较大的数据块,我想知道如何判断在不进入虚拟内存的情况下可以读取的最大数据块是什么

一些旁注

  • 为什么读取和处理大数据块要比处理小数据块快。被多次调用的开销加起来这么快吗
  • 我很想看看我是否可以通过在赛昂试一试来获得更大的速度增益。有没有人知道我可以看一看带有二进制文件读取器的模块(除了scipy.stats matlab文件读取器)
      • 我想知道如何判断在不进入虚拟内存的情况下可以读取的最大数据块是什么
      我不确定“不进入虚拟内存”是什么意思,但这在很大程度上取决于文件格式、存储介质和文件系统/操作系统等细节。最好根据经验来确定。如果可以,请实现一个参数
      chunk\u size
      (或
      n\u records
      ,或其他任何参数),以确定一次读取多少条记录

      • 为什么读取和处理大数据块要比处理小数据块快
      取决于读取的代码。这可能是由于系统调用开销,或者因为Python代码必须在读取之间执行

      • 有谁知道有带二进制文件读取器的模块吗?我可以看一下
      我用Cython共同编写了一个简单的文本格式,用于稀疏矩阵。它作为scikit学习的一部分分发