Vertexis
@Vertexis

Производительность PHAR-архива, действительно ли он быстрый?

Был вдохновлен на использование PHAR архивов, после работы с SILEX-framework (времен 2013 года).
Решил задействовать тот же подход и для своего проекта, сложив его ресурсы в в данный тип архива, тем более везде пишут о его преимуществах, например:
преимущества
  • PHAR легко устанавливается, а если точнее — он входит в стандартную поставку PHP 5.3.
  • Легко использовать.
  • Удобно при копировании файлов на другой хост.
  • Легко разворачивать — всего один файл.
  • Высокая степень защиты PHP приложения — сигнатуры, OpenSSL.
  • Обладает высокой производительностью.

Написал , проект с парой десятков емких вендоров и различного контента (~9000 штук фалов, примерно). Запаковал...
Копировать по удаленке такой проект просто сказка (1 файл), не желе несколько тысяч файлов по отдельности.
НО! Как потом выяснилось эмпирическим методом, производительность такой системы упала многократно!
Получение 1 любого файла стала занимать от 2 до 4 секунд (этотде проект вне PHAR-архива работает мгновенно). Это при том, что крутиться все это дело на php7.2 + ssd в качестве накопителя и PHAR использую без сжатия и шифрования. Особенно заметно в местах, где надо вывести лист иконок (содержимое одной директории)
Примеры:
Работа с raw ресурсами
$phar = new Phar($patchToPharFile);
 $phar[$myFile]->getContent();
Получение списка файлов в директории
$dir = 'phar://' . $pharFile . $patchToMyDir;
if (is_dir($dirFull) && ($dh = opendir($dirFull))) {
      while ((($fileName = readdir($dh)) !== false)) {
                //$fileName;
       }
      closedir($dh);
}

Думаю, может работаю с PHAR-архивами как нибудь неправильно. Что думаю об этом знатоки. За ответы спасибо
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега PHP
include 'phar:///path/to/myphar.phar/index.php';
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы