Задержка запуска PHP браузера Browscap.ini

Я заметил, что включение записи browscap.ini в файле php-cli.ini увеличивает время запуска php

[browscap]
browscap = /etc/browscap.ini

time php -r 'echo "Hello\n";'
Hello

real    0m1.709s
user    0m1.358s
sys 0m0.348s

**** против ниже ****

[browscap]
;browscap = /etc/browscap.ini

time php -r 'echo "Hello\n";'
Hello

real    0m0.041s
user    0m0.029s
sys 0m0.011s

Теперь я знаю, что php ищет файл browscap.ini, когда вызывается такая функция, как get_browser (). Я могу понять отставание, если такая функция используется.

Я не думаю, что php будет загружать данные browscap.ini (которые могут быть большими) в память при каждом запуске. Но почему огромная задержка запуска php?

Может быть, он пытается проверить, существует ли файл browscap.ini при каждом запуске или какой-либо другой проверки? Не удалось найти ничего в документации php.

Так почему же огромная разница во времени запуска php?

0

Решение

PHP загружает всю свою конфигурацию (включая browscap.ini) при запуске, которая в CLI каждый раз, когда вы вызываете php, Неважно, если вы не позвоните get_browser() в вашем сценарии, даже если вы дадите php нет сценария для интерпретации вообще; в любом случае browscap будет загружен, если файл конфигурации скажет так. Причина, по которой разница во времени запуска заметна, в том, что типичный browscap.ini обычно относительно велик.

Вот несколько результатов, полученных на моей машине с использованием файлов разных размеров и простых php -v:

  • нет browscap: 0m0.030s
  • lite_php_browscap.ini (222 КБ): 0 м0 040 с
  • php_browscap.ini (16301 КБ): 0,6040 с
  • full_php_browscap.ini (33 714 КБ): 0 м 1,290 с
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]