2010-04-06 3 views
5

Я сейчас переписываю свой сайт, используя свою собственную фреймворк (это очень просто и делает именно то, что мне нужно, мне не нужно что-то вроде Zend или Cake PHP). Я много работал над тем, чтобы убедиться, что все кэшировано должным образом, кэширование страниц в файлах, поэтому избегайте запросов sql и обычно ограничивайте количество запросов sql.php memory is much is too

В целом, похоже, что это очень быстро. Среднее время, затрачиваемое на первую страницу (более 100 раз), составляет 0,046152 микросекунды.

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

Использование памяти_get_peak_usage (TRUE), которое я THINK возвращает наивысший объем используемой памяти во время работы сценария, среднее значение (принятое более 100 раз) составляет 1572864 байт.

Это хорошо?

Я понимаю, что вы не знаете, что я делаю (это довольно просто, получите 10 последних статей, количество комментариев для каждого, получите пользовательские элементы управления, популярные теги на боковой панели и т. Д.). Но разве вы были бы взволнованы сценарием, используя такую ​​память, получающую 50 000 раз в день? Или раз в секунду в пиковые времена?

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

EDIT: Только мини-эксперимент, который я сделал для себя. Я загрузил и установил Wordpress и установку по умолчанию без дополнительных дополнений, только один пользователь и только одно сообщение, и он использовал 10,5 мегабайт памяти или «11010048 байт». Весьма доволен моим 1.5mb сейчас.

ответ

3

Значения использования памяти могут сильно различаться и подвержены колебаниям, но, как вы уже сказали в своем обновлении, обычный экземпляр WordPress намного, намного толще, чем этот. У меня были большие проблемы, чтобы заставить бэкэнд WordPress работать с memory_limit из шестнадцати мегабайт - не говоря уже о том, когда подключаются плагины. Таким образом, я бы сказал, что пик 1,5 мегабайта, выполняющий обычные задачи, вполне в порядке.

Время генерации чрезвычайно подвержено аппаратным средствам, на которых работает ваш сайт. Однако время генерации 0.046152 секунды (я полагаю, вы имеете в виду секунды здесь) звучит очень хорошо для меня при нормальных обстоятельствах.

+0

Я бы тоже подумал о секундах. Однако я измеряю время, используя define («START», microtime()) в начале и START - microtime() в конце. Думаю, я пишу, думая, что это даст мне время, затраченное на микросекунды, а не секунды? – Rob

+0

@Rob вы используете параметр 'float'? –

+0

php.net, похоже, не указывает, что такое значение по умолчанию. Но я не отправляю никаких аргументов в функцию microtime. – Rob

3

Это субъективный вопрос. У PHP много накладных расходов, и при вызове функции с ИСТИНЕЙ, эти накладные расходы будут включены. Вы увидите, что я имею в виду, когда вы вызываете функцию в простом сценарии Hello World. Также имейте в виду, что результаты могут сильно различаться в зависимости от того, запущен ли PHP как модуль apache или FastCGI.

К сожалению, никто не может предоставить заверений. Всегда будут непредвиденные переменные, которые могут сбить сайт. Выполните нагрузочное тестирование. Используйте профилировщик кода, чтобы сузить местоположение любых узких мест, чтобы узнать, есть ли способы сделать эти кодовые блоки более эффективными.

Энциклопедия Британника считает, что они были подготовлены, когда десять лет назад они открыли свою энциклопедию, поддерживающую рекламу. Разработчики не знали, что они объявят об этом в «Доброе утро, Америка» в день запуска. Все это рушилось в течение нескольких дней.

+0

Почему при вызове функции с TRUE возникает много накладных расходов? Разве это не значит, что FALSE требует больше вычислений? – Pacerier

0

Пока ваши системы не меняются, использование памяти разумно. Любое дополнительное беспокойство - это преждевременная оптимизация.