PerformanceFileFGets

From LeakonWiki

Jump to: navigation, search

File和FGets的性能对比

要把一个文本文件的每一行都拆分到数组中,可以用两个函数:file() 和 fgets()。

file() 是直接完成预期的功能,我的理解是,他先一次性读入文件,在内存中进行拆分操作,速度比较快,但是比较耗内存。

fgets() 是每次读取一行,不必读入整个文件,适合处理大文件,但速度就明显比 file() 慢的多。

处理 50 万行的的文本,可以明显感觉到两种方法的速度差别:

$arrPerformance = array();
$fp = fopen($file, 'r');
while (!feof($fp)) {
	$arrPerformance[] = trim(fgets($fp, 200));
}
$arrPerformance = file($file);
Personal tools