- PVSM.RU - https://www.pvsm.ru -

По всей видимости, на наших глазах родился еще один легендарный коммит (осторожно, в комментариях сплошные гифки):
github.com/composer/composer/commit/ac676f47f7bbc619678a29deae097b6b0710b799 [1]
При попытке разобраться с проблемой производительности [2] Композера поступило предположение [3], что причина проблемы кроется в сборщике мусора:
Это действительно может быть проблемой по части GC. Если создается много объектов, и все они не могут быть «удалены», то GC в PHP начинает сходить с ума — он постоянно пытается провести сборку мусора, но убирать-то нечего — поэтому он просто тратит лишнее время/такты процессора. На это указывает и то, что проблема выявляется только на больших проектах (= много объектов), но не так заметна на маленьких (= GC включается не так часто).
В некоторых случаях, отключение GC сделает выполнение гораздо быстрее (правда, ценой потребления большего количества памяти). Если еще никто не попробовал, то стоит добавить gc_disable() к команде update/install.github.com/composer/composer/pull/3482#issuecomment-65131942 [3]
Результаты, кстати, оказались более чем обнадеживающими:
Before: Memory usage: 135.4MB (peak: 527.71MB), time: 119.82s
After: Memory usage: 134.89MB (peak: 391.28MB), time: 11.26s
Before: Memory usage: 163.66MB (peak: 403.82MB), time: 246.25s
After: Memory usage: 163.34MB (peak: 350.36MB), time: 99.55s
Автор: HotWaterMusic
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/76106
Ссылки в тексте:
[1] github.com/composer/composer/commit/ac676f47f7bbc619678a29deae097b6b0710b799: https://github.com/composer/composer/commit/ac676f47f7bbc619678a29deae097b6b0710b799
[2] попытке разобраться с проблемой производительности: https://github.com/composer/composer/pull/3482
[3] предположение: https://github.com/composer/composer/pull/3482#issuecomment-65131942
[4] Источник: http://habrahabr.ru/post/244825/
Нажмите здесь для печати.