Что APC делает со статическим контентом

предположим, что я заставляю mod_php принять .html файлы. Предположим, что в одном из этих файлов есть 0 PHP-кода.

Если я перейду к этому файлу с включенным APC, что произойдет? Он кэшируется или все еще должен быть прочитан с диска?

другой сценарий, у меня есть . Что происходит с содержимым вне тегов PHP? Он хранится в памяти? Или его нужно каждый раз читать с диска?

1 ответов


если я перейду к этому файлу с включенным APC, что произойдет? Он кэшируется или все еще должен быть прочитан с диска?

если у вас .html файлы, которые будут проанализированы как PHP, то да -- он будет кэшироваться. Что-то вроде того.

в частности, PHP создаст optree для документа, который в конечном итоге будет очень короткой и скучной программой с одной очень большой Строковой константой в ней. Это в конечном итоге будет храниться в памяти. Однако, если это все, что вам нужно, вам было бы намного лучше использовать что-то вроде mod_mem_cache (не связано с memcached!) вместо этого, поскольку он фактически предназначен для кэширования статического контента.

другой сценарий, у меня есть .PHP-файл. Что происходит с содержимым вне тегов PHP? Он хранится в памяти? Или его нужно каждый раз читать с диска?

как я упоминал ранее, контент вне тегов PHP по-прежнему рассматривается как часть PHP "программа" - хотя она трактуется немного по-другому внутренне, кусок статического текста, окруженный ?> ... <?php (или в начале или в конце файла) эффективно лечить, как если бы он был в echo "...". (Только без подводных камней, связанных вырваться в эту строку.) Например, следующие два блока кода функционально более или менее идентичны, за исключением некоторых различий в пробелах:

<?php
  if ($condition) {
      echo "Hello";
  }
?>

и

<?php if ($condition) { ?>
    Hello
<?php } ?>