xcache как это работает? покрытие кода? башмаки? OOMS?

Я искал всю документацию, в том числе на веб-сайте XCache.

Я новичок в кэшировании кода операции PHP и XCache. Я хотел бы объяснить, как работает XCache. Я знаю, что он хранит скомпилированный код php, поэтому его не нужно перекомпилировать каждый раз. Но как XCache узнает, когда php-код был обновлен и, следовательно, кеш устарел?

Как узнать, нужно ли очищать кеш?

XCache компилирует и кэширует весь php-код на сервере? Если это так, это можно настроить?

Какие сабо? OOMS? Я вижу большие числа для них обоих в интерфейсе страницы администрирования XCache.

В средстве просмотра кода... что означает процент? Это процент кода, который был кэширован? Хиты означают количество строк скомпилированного кода, который был прочитан из кэша? Означает ли количество строк общее количество строк кода? Для чего нужен столбец ToDo? Почему некоторые строки выделены красным?

Я использую PHP 5.3.2, XCache 1.3.0 и Ubuntu 10.04, если это поможет.

1 ответ

Xcache:

оптимизирует производительность, удаляя время компиляции PHP-скриптов, кэшируя скомпилированное состояние PHP-скриптов в shm (RAM) и использует скомпилированную версию прямо из RAM.

Основываясь на наблюдениях с использованием PHP 5.5.3 и Xcache 3.1.0, я могу сделать следующее:

Cacher

Этот модуль имеет дело с двумя видами кэширования кода операции и переменной.

Кэширование кода операции разработано, чтобы быть простым раскрытием. Вы не можете настроить, как он решает кешировать, насколько:

  • Параметр xcache.count относится к количеству потоков кеша и соотносится с тем, сколько процессорных ядер вы хотите использовать - идея в том, что многопоточность должна быть самой быстрой, но нет никаких гарантий, так что экспериментируйте сами
  • Как правило, действительные значения счетчика будут 2^n, например 1, 2, 4, 8 - 0 отключат кэширование, а другие значения будут округлены до ближайшего действительного значения.
  • Параметр xcache.size относится к совокупной памяти всех потоков кеша. Итак, каждый поток получает примерно size/count объем памяти
  • OOM aka Out of Memory указывает на то, что поток кеша достигает максимального размера

Кэширование переменной требует использования простого кода get/set api в коде вашего приложения. После его включения с помощью xcache.var_size и xcache.var_count (аналогично настройкам кода операции) вы используете xcache_set($var1) а также xcache_get($var1) в ваших сценариях.

признание недействительным

Параметр xcache.stat определяет, нужно ли проверять, был ли файл изменен с момента его кэширования:

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

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

смывание

Существует интерфейс веб-администратора, который позволяет очищать определенный кеш. Веб-администратор использует PHP-API: xcache_clear_cache(…),

Поскольку кэш-память основана на ОЗУ каждый раз, когда сервер перезапускает, кэш должен быть очищен.

истечение

Кэшированные элементы истекают в соответствии с xcache.ttl а также xcache.var_ttl которые соответственно контролируют количество секунд, в течение которых хранится кэшированный элемент (0 - неопределенное значение и значение по умолчанию).

Coverager

Модуль Coverager, также известный как Code Coverage, немного загадочный. Согласно FeatureList, это похоже на диагностический инструмент, предназначенный для включения во временные административные / тестовые ситуации:

  • Coverager + реальный каркас тест-кейса, включая: [TOSHARE]
    • реальный каркас тест-кейса, скрипт управления с реальным браузером. Вы должны написать контрольные примеры.
    • Встроенный Coverager + его просмотрщик из Интернета, чтобы увидеть, сколько скриптов вы тестировали.
  • testcase+Coverager просто поможет вам убедиться, что все настоящие php веб-приложения работают правильно, когда
    • после включения XCache
    • после обновления php4 до php5
    • после обновления php4/5 до php6
Другие вопросы по тегам