Предположим, я собираюсь включить некоторую страницу из глубоко вложенной иерархии каталогов:
require '/path/to/project/views/forms/member/login/submit.php'
Я узнал из курса операционной системы, что: каждый раз, когда мы хотим получить доступ / искать файл: inode
(в unix-системах) каждого каталога пути читается для поиска файла. Так, это также повлияет на производительность из-за такого рода включения?
Извините, если я не понял.
Нет. Что касается проблем с производительностью, это достаточно тривиально, чтобы игнорировать.
Время, затрачиваемое на чтение файла в глубоко вложенном каталоге, незначительно, исходя из текущих скоростей обработки для большинства компьютеров. Вы даже не заметили бы этого.
Будет первый раз, когда путь каталога будет пройден. После этого данные stat () кэшируются, а накладные расходы становятся минимальными. Был бы только больший удар, если / когда рассматриваемые каталоги выталкиваются из кеша stat и данные должны быть перечитаны с диска.
Даже тогда хит очень маленький. Подумайте, что Apache должен делать точный тип операций для КАЖДОГО попадания на сервер, а также искать / load + анализировать файлы .htaccess и многое другое.
Замечательно, что вы пытаетесь применить то, что вы узнали в курсе операционной системы, к веб-приложению, но чаще всего это не будет полезно. Уровни, которые ОС считает «поражением производительности», чем приложение, общающееся с пользователем по сети, вполне вероятно, используя базу данных, резко отличается. В ОС тесты, рассчитанные на микросекунды, являются номинальными для курса, веб-приложение, вероятно, будет беспокоиться о миллисекундах в десять миллисекунд. Бритье через десять микросекунд даже не будет поддаваться измерению через Интернет. И да, я знаю, что xhprof отображает микросекунды, но это ничего не меняет.