Может ли определение множества констант вызвать проблемы с производительностью или памятью?

У меня есть сайт, который использует множество констант, которые определены следующим образом:

define('CONSTANT', 1)

В настоящее время у меня есть список из примерно 200 таких. Этот список запускается каждый раз при загрузке страницы. Это повлияет на мою производительность или использование памяти плохо?

Ответ 1

Есть причины избежать списка из 200 констант при каждой загрузке страницы, но производительность и использование памяти не будут среди них. В общем, лучший способ ответить на эти вопросы - запустить тесты. Измерьте время загрузки страницы и использование памяти как при загрузке 200 констант, так и без нее. Измерьте несколько тысяч раз и посмотрите на цифры. Я подозреваю, что вы найдете незначительную разницу. Микро-оптимизация обычно является пустой тратой времени.

Ответ 2

Константы очень дружелюбны к памяти, а 200 определений не будут даже заметны в производительности. Не нужно беспокоиться.

Ответ 3

Я бы не подумал. У вас проблемы с производительностью с помощью script? Если нет, то не беспокойтесь об этом. Если да, то что вы сделали, чтобы определить, где находится узкое место?

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

$start = microtime (true);
include ('file_to_include.php');
echo (microtime (true) - $start);

Ответ 4

Почему все определения? это, скорее всего, только замедлит вас, если у вас много трафика. если вы ставите их все на использование, я мог заметить, что это замедляет работу. какова причина, может быть, есть лучший способ (я никогда не нуждался в более чем 5 константах)

Ответ 5

Я не думаю, что это будет иметь большее влияние, чем чтение файла, который содержит 200 констант, а затем он будет оптимизирован вашим дисковым кешем. По крайней мере, это лучше, чем чтение 200 констант из базы данных. Если вы заботитесь о производительности, установите кеш-память op, поэтому он не будет требовать никакого дополнительного разбора каждый раз. Для памяти это зависит от типа ваших констант, но это будет не так много.