В устаревшем приложении я профилирую сценарий, который архивирует файлы в ZIP-архив. На данный момент добавление 55 МБ (~ 450 файлов) в zip-архив на локально работающей виртуальной машине занимает около 40 секунд. Я надеялся выяснить, где я мог бы улучшить это с помощью профилирования. Приложение работает на PHP 7.3 (к сожалению, оно не работает на 8.x), а Xdebug 3.1.6 — последняя версия, поддерживающая это; приложение включает в себя версию pclzip для создания архивов, которую я решил сравнить с собственной обработкой zip-архивов PHP, чтобы увидеть, есть ли существенная разница.
Xdebug выдает разбивку затраченного времени и график вызовов, как и ожидалось для pclzip:


Однако Xdebug не показывает такую же разбивку по времени для встроенной обработки zip-файлов (ZipArchive):


Интересно, что создаваемые файлы кэшгринда также существенно различаются по размеру:
$ ls -lh кэшгринд.out.??.gz -rw-r--r-- 1 бертиб бертиб 32М 5 янв. 12:06 кэшгринд.аут.23.гз -rw-r--r-- 1 бертиб бертиб 231K 5 января 12:09 кэшгринд.аут.26.гз (cachegrind.out.23.gz — профиль pclzip, cachegrind.out.26.gz — ZipArchive) В чем причина такой разницы? Я ожидаю увидеть схожие временные разбивки и графики вызовов для обоих подходов. Я новичок в Xdebug, и поиск не пролил никакого света на это несоответствие.
Мобильная версия