Есть ли смысл отключать сборку мусора в PHP?

Как говориться в официальной документации
На тестовой машине первая команда примерно выполняется 10.7 секунд, а вторая примерно 11.4 секунды. Это примерно на 7% медленнее. Однако, максимальное использование памяти скриптом уменьшилось на 98% с 931 Мб до 10 Мб

Вопросы производительности
Но это примитивный пример, да и в реальных задачах постоянно память не выделяться, а вот сборщик запускается регулярно и имеет дело со значительно большей фрагментацией (хотя это, возможно, не существенно)

В каких случаях может быть смысл отключить сборку мусора, если памяти слишком много?
  • Вопрос задан
  • 2447 просмотров
Пригласить эксперта
Ответы на вопрос 5
А отлавливать сам будешь мусор? В принцыпе вообще не надо отрубать, да и сомневаюсь что хостер позволит сделать такое.
Ответ написан
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Эти вопросы уже давно решены теми или иными методами. Если кратко, то gc вряд ли отожрёт больше 10%, а утечки всегда плохо, очень плохо, просто ужасно. Особенно если понимать, что тот же инкремент в той же Java (про PHP точно не скажу) может создавать новый объект.

Чуть чуть про GC в PHP.
Ответ написан
madmages
@madmages
Человек прямоходящий
ну, по ссылке говорят что при включении сборщика расход памяти уменьшился и производительность уменьшилась на 7%. тоесть вы ищите профит в 7%? если нет то я не понимаю вашего вопроса
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
http request - какая разница, 0.3 или 0.33 секунды работает PHP? А если у вас запрос обрабатывается даже одну секунду - уже всё равно надо профилировщиком глядеть, где время теряете.
CLI - в CLI обычно длительные задачи сбрасывают. 10 секунд или 11 будет работать - обычно значения не имеет. А вот потеря гигабайта памяти куда более заметна.
Ответ написан
barkalov
@barkalov
Ответ такой: Есть смысл писать не на php. Серьезно, не холивара ради, если уж так нужна производительность - перепишите узкое место на с++. Либо просто не парьтесь.
Ответ написан
Ваш ответ на вопрос

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

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