Продукты, которые вы перечисляете, служат различным целям.
Кеши OPCode
В этом списке Википедии есть много PHP-ускорителей (OPCaches) . Как и в случае с продуктами с открытым исходным кодом, все они довольно похожи. XCache - это облегченный PHP-ускоритель, и он используется по умолчанию, когда вы запускаете этот HTTPd. Он хорошо работает и с Apache, однако APC, по-видимому, немного более «хорошо играет с другими» в социальном плане, официально поддерживается как часть PHP и выпущен в соответствии с официальным дистрибутивом PHP.
Я отказался от usign eAccelerator из-за его медленной разработки, отставания от выпусков PHP и официального благословенного статуса, который APC предлагает с аналогичной производительностью.
Эти продукты, как правило, капли; без изменения кода мгновенное повышение производительности. С большими кодовыми базами (Drupal, Wordpress) производительность может быть увеличена в 3 раза при сокращении времени отклика и использования памяти.
Кеширование данных
Memcache - это немного другой продукт - вы можете думать о нем как об упрощенной системе значений ключей, которую можно масштабировать на несколько серверов . Программное обеспечение должно быть улучшено для поддержки Memcache, и оно решает некоторые проблемы лучше, чем другие. Если у вас есть список стоимости акций в реальном времени на вашем веб-сайте, вы можете использовать Memcache, чтобы сохранить постоянный список текущих значений, отображаемых на вашем веб-сайте. Вы можете использовать его для хранения данных сеанса для краткосрочного повторного использования. Вы не будете использовать его для других целей, таких как полностраничные кэши или для замены MySQL.
Существуют также дополнения Wordpress, такие как WP-Super-Cache, которые могут значительно улучшить производительность Wordpress (в действительности, WP-Super-Cache во многих случаях может конкурировать со статическими сайтами на основе HTML).
В заключение - я очень рекомендую APC, если вы хотите «установить и забыть, хорошо поддерживаемый продукт».
[4]: http://
", чтобы исправить это.На stackoverflow был опубликован хороший ответ, который хорошо отвечает на ваш вопрос.
https://stackoverflow.com/questions/28716/which-php-opcode-cacher-should-i-use-to-improve-performance
источник
APC будет встроен в PHP6, так что это логичный выбор. Я использую его, и прирост производительности потрясающий. Если вам нужно кэшировать что-то кроме опкодов (то есть результатов запроса к базе данных), вы также можете использовать APC для этого, но невозможно разделить кэши APC между несколькими серверами. Если вам нужно только кешировать данные на одном сервере, APC отлично подходит. Если вам нужно масштабировать до нескольких серверов, и вы хотите разделить кеш между ними, memcached - ваш человек.
Однако я бы сделал одну вещь - создать класс-оболочку для любого кэширования (без кода операции), которое вы делаете. Таким образом, вы можете заменить механизм кэширования, не меняя код.
источник
Просто отметим, что все немного изменилось, и кажется, что APC не будет включен в ядро PHP 6.
APC медленно развивается, и похоже, что он никогда не будет совместим с PHP 5.5. Из-за этого, похоже, что парни из PHP будут устанавливать расширение кэша кода операции Zend OPCache как расширение PHP CORE. Вы заботитесь о том, чтобы узнать больше здесь http://wiki.php.net/rfc/optimizerplus .
Важное примечание: Zend OPCache не имеет кеша пользовательских данных, такого как APC, поэтому, если вам нужен кеш пользовательских данных, вы можете использовать его вместе с Memcache.
источник
Если версия PHP не ниже 5.50, то лучше всего подойдет OpCache (нативная библиотека PHP / PECL). Он должен быть предварительно скомпилирован при установке из двоичного файла.
http://php.net/manual/en/book.opcache.php
Если запустить версию PHP до 5.5, APC (PHP / PECL собственный кэш OpCode) будет самым простым выбором, хотя он считается необслуживаемым и мертвым:
http://php.net/manual/en/book.apc.php
Использование встроенной в PHP функциональности OpCache избавит вас от необходимости поддерживать сторонние библиотеки.
источник
Memcache кэширует пары ключ / значение, а не коды операций. Вы можете использовать его вместе с одним из кэшей кода операции.
источник