Показать сообщение отдельно

  #16  
Старый 16.12.2009, 01:40
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме:
1698585

Репутация: 818


Отправить сообщение для b3 с помощью ICQ
По умолчанию

Цитата:
Сообщение от vorona  
Ну все делают стандартно: file_get_contents или file, а потом в цикле preg_match или ereg. Но это ресурсоёмно слижко для больших файлов...
Делать было нечего...

PHP код:
<?php
echo 'Стартанули: '.round((memory_get_usage() /1024/1024), 3)."Mb<hr>";

$SRART microtime();
$fp fopen('ftp.txt','r'); // 430 КБ (441*095 байт)
while (!feof($fp)) {
    @
$data .= fgets($fp1024);
}
fclose($fp);
$END microtime();

echo 
'Fgets '.round((memory_get_usage() /1024/1024), 3)."Mb<br>";
echo 
'Расход времени на открытие файла '.($END $SRART).'<hr>';
unset(
$data);


$SRART microtime();
$fp fopen('ftp.txt','r'); // 430 КБ (441*095 байт)
while (!feof($fp)) {
    @
$data .= fread($fp1024);
}
fclose($fp);
$END microtime();

echo 
'Fread '.round((memory_get_usage() /1024/1024), 3)."Mb<br>";
echo 
'Расход времени на открытие файла '.($END $SRART).'<hr>';
unset(
$data);


$SRART microtime();
$fgc file_get_contents('ftp.txt');
$END microtime();

echo 
'File Get Cont '.round((memory_get_usage() /1024/1024), 3)."Mb<br>";
echo 
'Расход времени на открытие файла '.($END $SRART).'<hr>';
unset(
$fgc);


$SRART microtime();
$file file('ftp.txt');
$END microtime();

echo 
'File '.round((memory_get_usage() /1024/1024), 3)."Mb<br><br>";
echo 
'Расход времени на открытие файла '.($END $SRART).'<hr>';
unset(
$file);

echo 
'Очистили память '.round((memory_get_usage() /1024/1024), 3)."Mb <hr>";


$SRART microtime();
$fp fopen('ftp.txt','r'); // 430 КБ (441*095 байт)
while (!feof($fp)) {
    
$data fgets($fp1024);
    if(
preg_match('#(.*)\.ru#',$data,$m))
    @
$arr[] = $m[0];
}
fclose($fp);
$END microtime();

echo 
'Расход памяти FGETS '.round((memory_get_usage() /1024/1024), 3)."Mb<br>\r\n";
echo 
'Расход времени '.($END $SRART).'<br>';
echo 
count($arr).'<hr>'// найдено 4730 ФТП
unset($arr);


###########################################################################################

$SRART microtime();
$fp fopen('ftp.txt','r'); // 430 КБ (441*095 байт)
while (!feof($fp)) {
    
$data fread($fp1024);
    if(
preg_match('#(.*)\.ru#',$data,$m))
    @
$arr[] = $m[0];
}
fclose($fp);
$END microtime();

echo 
'Расход памяти FREAD '.round((memory_get_usage() /1024/1024), 3)."Mb<br>\r\n";
echo 
'Расход времени '.($END $SRART).'<br>';
echo 
count($arr).'<hr>'// найдено 431 ФТП
unset($arr);


###########################################################################################


$SRART microtime();
$fgc file_get_contents('ftp.txt');
preg_match_all('#(.*)\.ru#',$fgc,$m);
$END microtime();

echo 
'Расход памяти FGC '.round((memory_get_usage() /1024/1024), 3)."Mb<br>\r\n";
echo 
'Расход времени '.($END $SRART).'<br>';
echo 
count($m[1]).'<hr>'// найдено 4730 фтп
unset($m);



###########################################################################################
$SRART microtime();
$file file('ftp.txt');
foreach (
$file as $str) {
if(
preg_match('#(.*)\.ru#',$str,$m))
$arr[] = $m[0];
}
$END microtime();


echo 
'Расход памяти FILE '.round((memory_get_usage() /1024/1024), 3)."Mb<br>\r\n";
echo 
'Расход времени '.($END $SRART).'<br>';
echo 
count($arr); // найдено 4730 фтп

?>
Цитата:
Стартанули: 0.368Mb
Fgets 0.79Mb
Расход времени на открытие файла 0.102569
Fread 0.79Mb
Расход времени на открытие файла 0.005163
File Get Cont 0.79Mb
Расход времени на открытие файла 0.007277
File 1.924Mb

Расход времени на открытие файла 0.012859
Очистили память 0.369Mb
Расход памяти FGETS 0.968Mb
Расход времени 0.223655
4730
Расход памяти FREAD 0.423Mb
Расход времени 0.012558
431
Расход памяти FGC 1.966Mb
Расход времени -0.937841
4730
Расход памяти FILE 2.941Mb
Расход времени 0.156725
4730
 
Ответить с цитированием