我有一个脚本可以执行一大堆fread
并fseek
调用二进制文件,使用这样创建的文件指针:
$fp = fopen('r','mybinaryfile');
该脚本处理二进制文件中大约 2,500 个单独的文件,每个文件都吸引了许多fseek
和fread
调用,因此对文件指针的总操作可能远远超过 20,000。
我是否认为使用我的$fp
文件指针的每个调用都会导致磁盘上的物理读取操作?
如果是这样,我想知道将整个文件加载到内存中并像这样使用它是否会更好。会吗?
目前,当我运行此脚本时,大约需要 20 秒。在我看来,还有改进的余地。
编辑:而且,如果可以将文件放入内存,那么在坚持指针方法的同时,这是如何实现的?这些文件每个只有大约 3MB,所以内存不足应该不是问题。