Что более эффективно между __autoload () или include / require? - PullRequest
0 голосов
/ 25 июля 2011

Который имеет более быстрое время выполнения: __autoload или include внутри вложенных операторов if?Что меньше подвержено ошибкам между ними?

Ответы [ 4 ]

3 голосов
/ 25 июля 2011

spl_autoload_register (вместо __autoload) должен быть более надежным вариантом: он позволяет писать код гораздо более гибко, чем это возможно с include операторами, и вы можете сохранить все централизованная.

Что касается производительности, ИМХО обсуждать ее бессмысленно, если только вы не измерили, что значительный процент времени загрузки вашей страницы тратится на загрузку, включая. Даже если это так, вам следует использовать кэш кода операции PHP для ускорения работы приложения, вместо того чтобы пытаться извлечь минимальные выгоды от переключения между include и автозагрузкой.

2 голосов
/ 25 июля 2011

Просто используйте include / require и получите читаемый, поддерживаемый и стандартный код.Это гораздо важнее, чем 0,001 секунды, которую вы могли бы сохранить.

Кстати, вы действительно уверены, что вам нужна экстремальная производительность ваших PHP-скриптов?Является ли включение действительно узким местом?

0 голосов
/ 25 июля 2011

Используете ли вы include / require или __autoload / spl_autoload, большая часть времени (в большинстве случаев в любом случае) будет потрачена на загрузку, анализ и компиляцию включенного исходного кода.Выполнение этих нескольких строк функций автозагрузчика вряд ли будет иметь значение для сравнения.

0 голосов
/ 25 июля 2011

Посмотрите на: http://framework.zend.com/manual/en/performance.classloading.html

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

Как предположил Джон, вы можете попробовать spl_autoload_register вместо __autoload (см. Его ответ).

Однако учтите, что это небольшая оптимизация, я просто отвечаю на ваш вопрос.

Редактировать: сначала я написал противоположное тому, что я предлагаю сейчас, поэтому я обновил свой ответ.

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