php namespace benchmark

Использование пространства имен делает сайт более быстрым или медленным? Это то, что я хотел бы знать.

Если это помогает улучшить производительность сайта, я бы хотел начать использовать его прямо сейчас. Но если это ухудшает его, то я не хочу его использовать вообще – даже небольшой результат имеет большое значение в моем проекте.

У кого-нибудь есть эталон? Каковы ваши взгляды?

Пространства имен PHP в значительной степени, если не совсем неуместны для производительности вашего сайта. Они помогают вам при написании хорошо инкапсулированного и структурированного кода, поэтому вы не должны бояться их использовать, по крайней мере, если ваш проект достигнет определенной сложности.

Если вы действительно беспокоитесь о производительности, сначала вы должны проконсультироваться и проверить, где лежат ваши настоящие узкие места.

Пространство имен не существует PHP-внутри, даже как структура. Имена функций и классов, которые определены в пространстве имен, будут иметь только идентификатор с дополнительным символом ASCII:

[1] => "namespace\user_func", // get_defined_functions() 

Когда PHP ищет имя функции / класса / константы, он должен пересекать ту же таблицу хэша, что и для обычных функций / классов / констант. И поскольку это хэш-таблица, нет штрафа за производительность.

Разумеется, разница в разборе. Но это не поддается измерению.