【发布时间】:2014-03-17 05:32:13
【问题描述】:
我的应用读取了一个 5MB - 10MB 的大文件,该文件已使用 json 条目逐行输入。
每一行都由一个解析器处理,该解析器被馈送到多个解析器并分别处理。一旦文件被读取,文件就会被移动。程序不断收到要处理的文件。
该程序目前适用于@file_get_contents($filename)。该程序的结构按原样运行。
问题是file_get_contents 将整个文件加载为一个数组,整个系统运行了一分钟。我怀疑如果我逐行阅读它而不是等待文件加载到内存中,我可以提高速度(我可能是错的并且愿意接受建议)。
执行此操作的文件处理程序太多。实现我需要的最有效方法是什么,哪种文件读取方法最适合?
我有fopen、fread、readfile、file 和fscanf 来应对我的头顶。但是,当我为他们阅读 man 时 - 它的所有代码都用于读取通用文件,而没有明确指示什么最适合较大的文件。
【问题讨论】:
-
使用它的理由?比写那些文件函数快吗?
标签: php performance