Ускорьте php в среде общего хостинга

У меня есть php-система на PHP 7, которая загружает около 40 классов для работы. Для отображения веб-страницы требуется около 180 мс, поэтому я начал проверять, смогу ли я сэкономить время за счет оптимизации кода. Я не смог использовать кеш, потому что данные, отображаемые на странице, зависят от того, какой пользователь вошел в систему, и очень индивидуальны.

Я сделал некоторые замены, такие как использование require вместо require_once, и я заменил функции в циклах, таких как

for($i = 0; $i < $this->GetItemCount(); $i++)

с:

$len = $this->GetItemCount();
for($i = 0; $i < $nLen; $i++)

но - к моему удивлению - это только дает мне лучший результат на 4-5 мс.

Затем я просто провел несколько экспериментов с функцией microtime(), чтобы увидеть, где расходуется время. Похоже, что простое включение и разбор всех классов занимает около 120 мс - а выполняемая работа занимает всего около 60 мс.

Я подумал, что включение может быть проблемой, поэтому я поместил весь код в один большой файл - но это не очень помогло.

Таким образом, кажется, что синтаксический анализ / компиляция все еще очень медленный даже с PHP 7. Я посмотрел, какие есть возможности предварительной компиляции кода, чтобы получить лучшие результаты, но кажется, что такие решения, как APC или OPCache, работают только тогда, когда вы иметь доступ к серверу. В основном я использую общие хостинги, поэтому возникает вопрос: есть ли возможность "скомпилировать" php в байт-код, который мог бы быть обработан быстрее? Я понимаю, что это сложно на общем хостинге, потому что скомпилированный код не может быть сохранен в памяти, но я не понимаю, почему не существует компилятора, который компилирует php-файл в файл байт-кода, который мог бы читайте за меньшее время, а затем снова и снова выполняйте весь анализ.

0 ответов

Другие вопросы по тегам