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

  #2370  
Старый 20.03.2008, 15:05
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами: 10021597

Репутация: 905


По умолчанию

Код:
$ wc -lc file.txt
 13713242 154744102 file.txt
$ cat php gzopen.php

<?php
  $handle_in = fopen("file.txt", "r");
  $handle_out = gzopen("file.gz", "w");
  while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл
  {
    $buffer = fgets($handle_in);
    gzwrite($handle_out,$buffer);
  }
  fclose($handle_in); // закрываем  файл (источник)
  gzclose ($handle_out);  // закрываем архивный файл (приёмник)
?>

$ time php gzopen.php
real    1m27.121s
user    1m22.449s
sys     0m1.588s
$ cat gzopen2.php

<?php
  $max_size = memory_get_usage () * 0.8;
  $handle_in = fopen("file.txt", "r");
  $handle_out = gzopen("file.gz", "w");
  while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл
  {
    $buffer = fread ($handle_in, $max_size);
    gzwrite($handle_out,$buffer);
  }
  fclose($handle_in); // закрываем  файл (источник)
  gzclose ($handle_out);  // закрываем архивный файл (приёмник)
?>

$ time php gzopen2.php
real    0m36.477s
user    0m34.346s
sys     0m1.016s
$
 
Ответить с цитированием