質問: fread や file_get_contents を使用した場合よりも、feof と echo を使用した fgets の方が 9 秒近く遅いのはなぜですか? ファイルが文字通り12行の長さで、メモリが1kb未満の場合でも。
追加情報: これは、IBM から直接取得したファイルを読み取るために使用している fgets 操作です: http://www.ibm.com/developerworks/opensource/library/os-php-readfiles/
$file_handle = fopen("myfile", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
echo $line;
}
fclose($file_handle);
そして、これは私がファイルから読み取るために使用している他のコードです:
$articleInner = fread($file, filesize($file)); // Read Entire File;
$data = explode("\n", $articleInner);
foreach( $data as $info ) // looping through read data.
{
両者の速度差は歴然!しかし、本当に困惑するのは、コードの最初のブロックが 10 行しか読み取れない場合、文字通り少なくとも 10 秒かかることです。それは私にはまったく実用的ではないようです。