2015-05-21 3 views
1

Я недавно получил обновленное о Opcache в php, и я мало знаком с файловым кэшированием в Codeigniter.Какой из них быстрее php Файловое кэширование или Opcache

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

Итак, я искал в Google и некоторых websites compared скорость кеширования, сравнивая ее там, где они упоминались. Кэширование файлов происходит медленно, по сравнению с другими методами кэширования memcache и Opcache php, и я путаюсь с отчетом.

Я знаю, что каждая техника кеширования имеет свои плюсы и минусы. Предложите мне ситуацию, чтобы моя страница не нуждалась в данных в реальном времени, и в настоящее время я использую кеширование на основе файлов. Так нормально ли идти в Opcache или Memache?

+0

PHP - это интерпретируемый язык, а не компилируемый язык, другими словами, когда PHP пытается использовать один из ваших файлов, он сначала считывает его и преобразует (он же компилирует) его в нечто похожее на машинный код, который он может запустить , Это происходит каждый раз для каждого запроса. Что такое 'opcache', так это хранить этот машинный код в кеше, чтобы PHP мог сразу использовать это вместо чтения и анализа ваших файлов PHP. Для сложных сайтов ускорение скорости может быть исключительным. –

+0

Если ваши отображаемые страницы не нужны в режиме реального времени/динамических данных, тогда кэширование файлов и страниц - это то, что вам нужно с точки зрения сервера. Установите заголовок expires, чтобы клиент кэшировал его с точки зрения клиента. – AbraCadaver

+0

@ Kevin - неправильно в одном серьезном отношении - PHP не является интерпретированным языком; это скомпилированный язык .... но это JIT (Just in Time), который может быть тем, что вас путает –

ответ

3

Память Opcache и Memcached хранятся в памяти. В подавляющем большинстве случаев извлечение данных из памяти происходит быстрее, чем извлечение данных из файловой системы. Недостаток? Запуск Memcached и использование opcache, очевидно, будут использовать некоторую память вашего сервера.

+0

Итак, вы говорите, что в Opcache результаты базы данных также сохраняются в памяти? и больше времени на выполнение запросов базы данных по времени? – Raja

+1

@Yadheendran - OpCache хранит чисто скриптовый байт-код, а не данные любого типа, поэтому результаты базы данных никогда не будут храниться в OpCache –

0

OPcache улучшает производительность PHP, сохраняя предварительно скомпилированный байт-код сценария в общей памяти, тем самым устраняя необходимость загрузки PHP и анализа скриптов по каждому запросу.
Файловое кэширование, о котором вы говорите, связано с кэшированием переменной в файл и последующим ее получением. (часто используется, когда время для получения данных очень медленное).
Поэтому, вы можете использовать кеширование на основе файлов для хранения вашей переменной и использовать Opcache для кэширования вашего скрипта. Однако кэшировать ваши данные в память будет намного быстрее. В этом случае попробуйте Memcached/Redis или все, что вы можете найти.

Смежные вопросы