Кэширование файлов APC и кеширование переменных - PullRequest
2 голосов
/ 24 февраля 2011

Скажем, у меня есть файл a.php, который содержит только большой массив:

$client = array(
    "a" => 123,
    "b" => 124,
    ...
 );

APC кэширует файл a.php, но что это значит точно?Он кэширует код операции только для назначения?Это на самом деле кэширует само сопоставление?Или мне нужно явно поместить это в кэш APC?

Спасибо!

1 Ответ

2 голосов
/ 24 февраля 2011

APC кэширует PHP-файл в байтовом коде.Это более быстрый посредник между читаемым человеком кодом и тем, что в итоге выполняет интерпретатор.Это аналогично компиляции файла C / C ++ в двоичный файл.Массив, скомпилированный таким образом, будет загружаться быстрее, чем если вы прочитаете его из файла формы.

Доступ к элементу в ассоциативном массиве в php - это постоянное время O (1) в Big-O .Добавление элемента также O (1).По большому счету лучше всего хранить такие массивы в базе данных, поскольку она использует меньше памяти и намного более гибка.Имейте в виду, что каждый браузер, который посещает это приложение, будет иметь свою собственную копию этого массива, где, как будто вы используете базу данных, будет только одна копия.Например, если вы хотите найти ключ, основываясь на его значении, вам придется перебирать его, то есть O (n) (что медленно), использование базы данных будет намного быстрее.

...