Различия между php apc и шаблонным кешированием - PullRequest
0 голосов
/ 04 января 2011

Привет, ребята, я немного запутался с Apc и шаблонным кэшированием.
Я имею в виду, что кеширование шаблонов - это что-то вроде умного кеширования.
В основном, в чем разница между ними

Ответы [ 2 ]

1 голос
/ 04 января 2011

APC-кеш предназначен для компиляции php-скрипта в исполняемый двоичный код операции и последующего его использования.

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

Несмотря на это основное использование, APC также может использоваться для хранения переменных времени выполнения в памяти (это можно рассматривать как глобальный сеанс для всех, кто обращается к одной и той же странице)


Хотя smarty кеширование технически не является двоичным кешем кода операции, бинарному PHP все равно необходимо преобразовывать его в двоичный код операции каждый раз, когда он выполняется.

Какие преимущества разумного кэширования заключаются в том, что он сохраняет записанный HTML / вывод на диск (или вы можете сохранить вывод в APC, второе использование)

Это означает, что он сохраняет выполнениецикл вместо цикла компиляции

0 голосов
/ 04 января 2011

Ajreal's ответ хороший.Я просто добавлю следующее:

Кэширование шаблонов в Smarty и кэширование кодов операций APC - это одно и то же на разных уровнях.Если у вас есть шаблон smarty, и нигде не происходит кэширование, вот (примерно), что должно произойти, чтобы выполнить шаблон:

1) Запустите (lex, parse и intepret) smartyкод шаблона.Конечным результатом является код PHP.

2) Запустите этот код PHP.Вывод здесь - байт-код php.

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

4) Запустите машинный код.

Кэширование в smarty кэширует выходные данные из шага 1.

APCкэширует вывод из шага 2.

...