Может ли определение множества констант вызвать проблемы с производительностью или памятью?
У меня есть сайт, который использует множество констант, которые определены следующим образом:
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, поэтому он не будет требовать никакого дополнительного разбора каждый раз. Для памяти это зависит от типа ваших констант, но это будет не так много.