Тест пространства имен php - PullRequest
6 голосов
/ 16 марта 2011

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

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

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

Ответы [ 2 ]

17 голосов
/ 17 марта 2011

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

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

14 голосов
/ 17 марта 2011

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

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

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

Разница в разборе, конечно, есть. Но это не измеримо.

...