2013-05-24 4 views
0

Я новичок в PHP и хочу попробовать кэширование (в первый раз), поэтому я сделать веб-сайт и он имеет:php Apc-кэширование или кэширование файлов для полустатического веб-сайта?

  • динамическая домашняя страница
  • динамического портфель Страница
  • динамический контакт страница
  • статического о странице
  • статической страницы админ

так я прочитал учебник о кэшировании и я пытаюсь сделать мой OW n кэширование:

с использованием файлового кэша на основе запрашиваемой страницы, когда запрашивается страница, система кэширования проверяет, есть ли кеш в cache directory, если нет файла кэша, а затем записать весь вывод (html) из php script (в этом случае вывод output buffer), и если есть файл кеша, который соответствует определенному идентификатору (на основе URI), то только include_once() html-файл.

Затем я прочитал в CodeIgniter (я делаю этот сайт с использованием CI) говорит, что есть APC для кэширования, затем я снова читал о APC, то, что я читал о APC, заключается в том, что он кэширует результаты DB, но теперь я смущен, я должен использовать

, что я получаю до сих пор:

  • кэширования файлов, вероятно, будет медленнее, если есть много запроса (я не знаю, если это правда или нет, но я читал где-то из поисковой системы)
  • APC быстро

, но я до сих пор путают, который я должен использовать, я нахожусь на хостингом

ответ

1

уровней кэширования наиболее актуальных в PHP приложения: кэширование

  • Файл/Script - The операционная система действительно сделает это в значительной степени. Когда файл открывается, он добавляется в кэш уровня ОС. Он остается там до тех пор, пока файл не будет затронут или ОС не захочет освобождать память для других процессов. Домашнее PHP-решение не является хорошей заменой для этого.

  • кэширования Опкода - Для того, чтобы функционировать, PHP необходимо разобрать и скомпилировать скрипт в опкоды. Механизм, подобный APC, будет кэшировать коды операций каждого скрипта PHP, выполняемого Apache, при условии, что кеш не переполняется. Домашнее PHP-решение, построенное поверх APC, может частично сделать это, но APC уже делает это ... так что не беспокойтесь.

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

  • Кэширование вывода - Если ваша страница в основном детерминированными и/или же рода задержки, применимой к кэширования запросов является приемлемым, вы можете кэшировать весь вывод сценария с использованием буферизации вывода и APC. Домашнее PHP-решение, построенное на APC, приемлемо здесь, но в целом не требуется. Если страница статична, вы, вероятно, не сберете себе какие-либо перерасчеты. И если он динамический, то обычно предпочтительнее просто перерисовать страницу в любом случае.

В выделенной или виртуальной среде вы должны установить APC (или что-то подобное) самостоятельно. Но в среде с общим хостингом очень вероятно, что APC установлен. И если бы это было не так, вы не смогли бы установить его самостоятельно.

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

+0

hi there thx для вашего ответа, я просто проверил свой общий хост, и я подтверждаю, что он не установлен 'APC' :(так что, может быть, я думаю, чтобы отступить к простому кэшированию файлов, которое я сделал (в котором хранятся выходы (html) из 'output buffer'), что вы думаете об этом? Должен ли я его кэшировать? потому что страница портфолио получит много изображений' URI' из БД и повторит ее в '' – mohur

+0

@mohur Практически невозможно сделать разумный рекомендации, так мало информации.Я бы сказал, не преждевременно оптимизируйте.Если вы начнете видеть проблемы с производительностью, первым шагом должен быть переход от общего хостинга! – svidgen

+0

, так что теперь я не должен кэшировать его правильно? у меня есть проблема, тогда я просто перемещаю общий хостинг? Я имею в виду, теперь я понимаю, даже если я реализую кэширование, это не повлияет на меня, потому что на общем хостинге все веб-сайты находятся на 1 сервере? (т. е. другой пользователь на общем хостинге получил тяжелый DOS'ed, тогда сервер будет перегружен, и мое кэширование даже не будет работать) извините за длинный вопрос из-за моего любопытства: D – mohur