2016-08-12 4 views
1

Я установил стандартную версию Symfony3. Я пытаюсь открыть домашнюю страницу (app.php prod) и загружается 300-400 мс. Это моя информация о профилировщике: enter image description here также использую php7.Почему Symfony3 так медленно?

Почему это так долго?

+0

И как вы получаете панель инструментов dev на производстве? – malcolm

+0

Вы правы, эта панель не из производства, но это единственный способ показать, что происходит под капотом моего проекта. – TheMrbikus

ответ

5

Hewwo TheMrbikus ~

Вы можете попробовать оптимизировать Zend OPCache. Вот некоторые рекомендуемые параметры

opcache.revalidate_freq
В принципе говоря, как часто (в секундах) следует кэш коды истекает и проверить, если ваш код изменился. 0 означает, что он проверяет ваш PHP-код на каждый отдельный запрос (который добавляет много статистических системных вызовов). Установите его в 0 в среде разработки. Производство не имеет значения из-за следующей настройки.

opcache.validate_timestamps
Когда эта опция включена, PHP проверяет файл метку времени в ваше opcache.revalidate_freq значение.
Когда он отключен, opcache.revaliate_freq игнорируется, а файлы PHP НИКОГДА не проверяются на обновленный код. Таким образом, если вы измените свой код, изменения не будут выполняться до тех пор, пока вы не перезапустите или не перезагрузите PHP (вы принудительно перезагрузите kill -SIGUSR2).
Да, это боль в попке, но вы должны ее использовать. Зачем? Пока вы обновляете или развертываете код, новые файлы кода могут смешиваться со старыми - результаты неизвестны. Это небезопасно, как черт


Управление количеством файлов PHP, самое большее, может храниться в памяти сразу. Важно, чтобы ваш проект имел МЕНЬШИЕ ФАЙЛЫ, чем все, что вы задали. Для кодовой базы в ~ 6000 файлов я использую простое число 8000 для maxacceleratedfiles.
Вы можете запустить find . -type f -print | grep php | wc -l, чтобы быстро вычислить количество файлов в вашей кодовой базе.

opcache.memory_consumption
По умолчанию 64 МБ. Вы можете использовать функцию opcachegetstatus(), чтобы указать, сколько памяти занимает opcache, и если вам нужно увеличить сумму.

opcache.interned_strings_buffer
Очень аккуратная настройка с аналогичной документацией 0.Для повышения производительности PHP использует технику, называемую интерпретацией строк, поэтому, например, если у вас есть строка «foobar» 1000 раз в вашем коде, внутри PHP будет хранить 1 неизменяемую переменную для этой строки и просто использовать указатель на нее для другой 999 раз вы его используете. Круто.
Этот параметр переводит его на следующий уровень - вместо того, чтобы иметь пул этой неизменяемой строки для каждого процесса SINGLE php-fpm, этот параметр делится им по всем вашим процессам php-fpm. Это экономит память и повышает производительность, особенно в больших приложениях.
Значение установлено в мегабайтах, поэтому установите его на «16» для 16 МБ. По умолчанию низкий, 4 МБ.

opcache.fast_shutdown
Другая интересная установка без полезной документации. «Позволяет быстрее завершить работу».
О, хорошо. Мне это помогает. На самом деле это обеспечивает более быстрый механизм вызова деструкторов в вашем коде в конце одного запроса, чтобы ускорить ответ и переработать PHP-рабочих, чтобы они были готовы к следующему входящему запросу быстрее.
Установите его в положение 1 и включите его.

opcache=1 
opcache.memory_consumption=256 
opcache.interned_strings_buffer=16 
opcache.max_accelerated_files=8000 
opcache.validate_timestamps=0 
opcache.revalidate_freq=0 
opcache.fast_shutdown=1 

Я надеюсь, что это поможет улучшить ваши выступления

Сердечно,
Preciel.

0
  • Используйте OPCache PHP7
  • Использовать Apa che PHP-FPM.

Процесс отправки электронной почты и может замедляться во время операций рендеринга формы. Создайте пустой тестовый контроллер.

Смежные вопросы