Зачем realpath () нужно ~ 30 секунд для "//localhost/mysite/config/settings.yml"? - PullRequest
0 голосов
/ 19 мая 2018

После почти часа отладки некоторых совершенно необоснованных времен выполнения запросов, которые должны были занимать миллисекунды, я обнаружил, что вызов

$path = realpath("//localhost/mywebsite/config/some_config_file.yml");

займет почти 30 секунд при первом выполнении и займет миллисекунды спустяна (для той же строки).Как и ожидалось, $path было установлено на false .

Хотя мне удалось удалить строку (это было ненужно в любом случае, пожалуйста, не судите) и, таким образом, устранить ошибку, явсе еще хотел бы знать, что случилось, поскольку я хотел бы расти как разработчик.

  1. Что заставляет realpath () занимать 30 секунд?
  2. Почему гораздо меньше времени для последующих запросов?Этот OPcache использует предварительно скомпилированное значение?

К вашему сведению: запросы выполнялись на моей локальной машине с активированным xdebug.PHP 7.2, Win 10 и Apache.

1 Ответ

0 голосов
/ 19 мая 2018

По моему мнению и по моему опыту, я больше не использую realpath () с годами из-за таких причин.Если настройка вашего приложения прямая, например: включите правильную настройку путей или конкретную настройку пути к библиотеке для автозагрузчиков, realpath больше не требуется.И это ускоряет все.С уважением

edit btw: yes opcache в 7.2 делает еще один ооо, ups:)

...