АСѾԐД Создание и продвижение сайтов

Fast Site Engine

CMS для сайтов

Создать сайт

Карта сайта
Переходим на Линукс
Политика конфиденциальности
Сделать сайт на основе Fast Site Engine

Установка
Документация
Список изменений
Лицензионное соглашение

Скачать
О движкеОбо мнеДеятельностьПортфолиоКонтакты

file vs file_get_contents vs fopen vs SplFileObject php

Сегодня проведу тестирование на предмет: как быстрее всего открыть файл в php и считать его в строку. Есть методы быстрее, которые сразу отдают файл на страницу, но я ими не пользуюсь. Тестирование буду проводить по отдельности, чтоб уберечься от файлового кэша.. Сам здравомыслием раньше не пользовался, на практике не проверял, в инете где-то понаписано было про file круче ну и использовал implode('',file($file)). Конечно же есть мелкая погрешность из-за нагруженности дисковой системы, брал результат который появлялся чаще..

$file=' 22,7 kb ';
$d1=file_get_contents($file);
$h=fopen($file,'r');
$d2=fread($h,filesize($file));
fclose($h);
$d3=implode('',file($file));
$d4='';
$h=fopen($file,'r');
while(!feof($h)) $d4.=fgets($h);
fclose($h);
$h=new SplFileObject($file,'r');
$d5=$h->fread($h->getSize());
$d6='';
$h=new SplFileObject($file,'r');
while(!$h->eof()) $d6.=$h->fgets();
$h=null;
Компьютер:
времяпамятьмедленнее набольше памяти на
1 file_get_contents0.00007623.15 kb0 с.0 %0 kb0 %
2 fopen fread0.00008023.31 kb+0.000004 с.+5 %+0.16 kb+0.69 %
3 implode file0.00020323.25 kb+0.000127 с.+62.56 %+0.1 kb+0.43 %
4 fopen fgets0.00025523.28 kb+0.000179 с.+70.2 %+0.13 kb+0.56 %
5 SplFileObject fread0.00028223.31 kb+0.000206 с.+73.05 %+0.16 kb+0.69 %
6 SplFileObject fgets0.00028323.31 kb+0.000207 с.+73.14 %+0.16 kb+0.69 %
Сервер:
времяпамятьмедленнее набольше памяти на
1 file_get_contents0.00006523.22 kb0 с.0 %0 kb0 %
2 fopen fread0.00008523.39 kb+0.000020 с.+23.53 %+0.17 kb+0.73 %
3 implode file0.00020723.33 kb+0.000142 с.+68.6 %+0.11 kb+0.47 %
5 SplFileObject fread0.00025523.39 kb+0.000190 с.+74.51 %+0.17 kb+0.73 %
4 fopen fgets0.00027723.36 kb+0.000212 с.+76.53 %+0.14 kb+0.6 %
6 SplFileObject fgets0.00032023.39 kb+0.000255 с.+79.69 %+0.17 kb+0.73 %

Хвалёный SplFileObject, как и ожидалось, тормознее всего..





18.07.2026
19.8.7534 от С.М.З.Х.
Unix time: 1784413461
© Все права защищены 2004 - 2026