apc vs eaccelerator vs xcache

105

Badam, którego z nich użyć i nie mogę znaleźć takiego, który by się wyróżniał. Eaccelerator jest szybszy niż APC , ale APC jest lepiej utrzymany. Xcache jest szybszy, ale inne mają prostszą składnię.

Czy ktoś ma zalecenia, których użyć i dlaczego?

Galen
źródło
1
eAccelerator nie wygląda tak, jakby pojawił się na rynku od ponad roku. VC xcache jest z pewnością aktywny, ale nie mogłem też skupić się na wydaniach i koncentracji. Wszystko sprowadza się do oprogramowania, które jest utrzymywane, a firma APC wygrywa z łatwością.
Do
11
Jest trzeci kwartał 2011 r. Czy od 2009 r. Coś się zmieniło?
john

Odpowiedzi:

110

APC zostanie włączone do PHP 6 i myślę, że zostało wybrane nie bez powodu :)

Jest dość łatwy w instalacji i na pewno przyspiesza.

David Snabel-Caunt
źródło
Rozważyłem te trzy i zdecydowałem się rozpocząć testy z APC z tego powodu. Dwie pozostałe wydają się mieć również pewne problemy ze stabilnością.
Steve Claridge
46
Miałem tylko trzy problemy z APC, z których wszystkie były pod moją kontrolą. 1) Nie pozwól, aby APC się zapełniło. Upewnij się, że przydzielono wystarczającą ilość pamięci 2) Nie używaj apc_clear_cache () na aktywnym serwerze 3) APC tak naprawdę nie radzi sobie dobrze z dużą rywalizacją o blokady - nie próbuj zapisywać do jednego klucza z wielu procesów jednocześnie.
Frank Farmer
10
Właściwie nie ma obecnie czegoś takiego jak PHP6.
Evert,
20
Ponieważ ten wątek jest najlepszym wynikiem w Google, prawdopodobnie powinien zostać zaktualizowany, aby wskazać, że Zend Optimizer został włączony do PHP 5.5, który został wydany w tym miesiącu. Ty można go wyłączyć i używać zamiast APC, choć nie jestem pewien, dlaczego chcesz chcą.
Forest
2
Magazyn danych użytkownika @Benjamin można przywrócić za pomocą APCu ( github.com/krakjoe/apcu ), który można zainstalować i używać razem z ZO.
Swader
23

Sprawdź testy i porównania:

tu i tu i tam

Boris Guéry
źródło
15
Szkoda, że ​​są tacy starzy. 2006? Ewww.
analytik
3
Przypuszczam, że możemy poczekać kilka lat, a poprzedni komentarz będzie stary?
benmarks
5
Sukces. Ma teraz 3 lata. Ewwww.
Swader
3
Stary już 2016. Czy ktoś może przerobić benchmarki całą dekadę temu?
Pacerier
13

Zdecydowanie APC. Został napisany przez ludzi z PHP, więc nawet jeśli może nie mieć największych prędkości, możesz postawić na fakt, że jest to najwyższa jakość.

Dodatkowo otrzymujesz inne fajne funkcje, których używam przez cały czas ( http://www.php.net/apc ).

Wynicować
źródło
3
Facebook jest też ciężkim użytkownikiem APC - używają gigabajtów, jeśli nie terabajtów pamięci podręcznej APC. Wiele ulepszeń, które wprowadzili, zostało wydanych z powrotem i zintegrowanych z główną wersją APC.
Frank Farmer
13
Myślisz o memcached.
Evert
3
@Każdy FB próbuje trafić do lokalnej pamięci podręcznej APC przed nawiązaniem połączenia TCP / IP z memcached scribd.com/doc/4069180/ ...
Andy
1
Prawdopodobnie ... ale kiedy on mówi o ulepszeniach, które zostały wprowadzone z powrotem, itp. To prawdopodobnie Memcache. Chyba że zrobili to samo z apc.
Evert
@Andy, Facebook nie używa tego. Używa własnej maszyny wirtualnej HipHop.
Pacerier,
11

Ostatecznie zdecydowałem się na eAccelerator - zachwiał mnie wzrost szybkości, mniejsze zużycie pamięci i bardzo łatwa instalacja. Ma również ładny interfejs sieciowy, który czyści pamięć podręczną i zapewnia statystyki.

To, że nie jest już konserwowany, nie jest dla mnie problemem - działa i tylko na tym mi zależy. W przyszłości, jeśli zepsuje PHP6 (lub cokolwiek), to ponownie ocenię swoją decyzję i prawdopodobnie pójdę z APC tylko dlatego, że został przyjęty przez programistów PHP (więc powinien być jeszcze łatwiejszy do zainstalowania)

gbjbaanb
źródło
4
„jeśli zepsuje PHP6”… czy nie masz na myśli „kiedy?” :)
Brian Lacy
2
To zabawne, ponieważ po 5,5 roku nadal nie ma wersji „PHP 6”.
Eric L.,
@ Eirik, PHP 6 jest wczoraj. Teraz jest 7 .
Pacerier
11

Może być ważne, aby wskazać aktualne wersje stabilne, niestabilne i deweloperskie każdego z nich (w tym datę):

APC

http://pecl.php.net/package/apc

dev        dev          2013-09-12
3.1.14     beta         2013-01-02
3.1.9      stable       2011-05-14

Xcache

http://xcache.lighttpd.net/

dev/3.2     dev        2013-12-13
dev/3.1     dev        2013-11-05
3.1.0       stable     2013-10-10
3.0.4       stable     2013-10-10

eAccelerator

https://github.com/eaccelerator/eaccelerator

dev         dev        2012-08-16
0.9.6-rc1   unstable   2010-01-26
0.9.5.1     stable     2007-05-16
Ryan Schumacher
źródło
1
Zaktualizowane najnowsze wersje - wygląda na to, że Xcache ma największą aktywność zarówno w zakresie nowych funkcji, jak i poprawiania poprzednich wersji
Ryan Schumacher,
9

We wszystkich testach, które widziałem, eAccelerator działa szybciej niż jakakolwiek inna pamięć podręczna i zużywa do tego mniej pamięci. Zawiera sprytny skrypt do przeglądania wykorzystania pamięci podręcznej i czyszczenia pamięci podręcznej itp. EAccelerator jest kompatybilny z xdebug i Zend Optimizer.

APC jest dołączane do PHP, ponieważ jest utrzymywane przez programistów PHP. Działa bardzo dobrze, ale nie tak dobrze, jak eAccelerator. I ma problemy ze zgodnością z Zend Optimizer.

Xcache został stworzony przez twórców lighttpd, testy porównawcze pokazują, że działa on podobnie jak eAccelerator i jest szybszy niż APC.

Więc który jest najlepszy?

APC = Świetnie, jeśli potrzebujesz łatwej pamięci podręcznej, która zawsze będzie działać z PHP, bez problemu. eAccelerator = Jeśli masz czas na jego konserwację, aktualizuj go i rozumiej, jak to działa, będzie działać szybciej. Wsparcie długoterminowe nie jest tak pewne jak APC, ponieważ APC jest wykonywane przez programistów PHP.

Prom3th3an
źródło
7

Przetestowałem eAccelerator i XCache z Apache, Lighttp i Nginx ze stroną Wordpress. eAccelerator wygrywa za każdym razem. Zła rzecz to tylko brakujące pakiety dla Debiana i Ubuntu. Po aktualizacji PHP często serwer przestaje działać, jeśli moduły eAccelerator nie są ponownie skompilowane.

Ostatni RC eAcceleratora pochodzi z 2009/07/15 (0.9.6 rc1) i obsługuje PHP 5.3

devarni
źródło
6

Zawsze używałem APC z php 5.1 i 5.2, ale miałem wiele (losowych) błędów podczas używania APC z php 5.3: Dziwne puste strony, losowe błędy braku pamięci. Wszystkie zniknęły, kiedy wyłączyłem APC. Ale to nie było możliwe, ponieważ jest to strona internetowa o dużej objętości.

Więc spróbowałem eacceleratora. Do tej pory było solidne, a wzrost prędkości jest jeszcze większy niż w przypadku APC. Faceci z APC naprawdę muszą poświęcić trochę czasu na naprawianie błędów.

miele
źródło
1
Miałem te same problemy z APC i php 5.3. Dziękuję za komentarz. PHP bez buforowania w mojej konfiguracji jest znacznie szybsze i niezawodne niż w przypadku APC. Puste strony i błędy braku pamięci doprowadzały mnie do szału, dopóki nie usunąłem APC.
Paul D. Eden,
nigdy nie zorientowali się jądra powodu zabija php-fpm ponieważ APC
vimdude
4

Myślę, że najlepszym rozwiązaniem jest APC, chyba że używasz w witrynie Zend Optimizer. APC jest niekompatybilne z Zend Optimizer, więc w takim przypadku będziesz musiał użyć czegoś takiego jak eAccelerator.

rg88
źródło
Jeśli używasz Zend Optimizer, nie potrzebujesz niczego więcej, ponieważ obsługuje on także buforowanie optcode i udostępnia interfejs zgodny z APC.
txyoji
3

Nawet zarówno eacceleator, jak i xcache działają całkiem dobrze podczas umiarkowanych obciążeń, APC utrzymuje swoją stabilność przy dużym natężeniu żądań. Jeśli mówimy tutaj o kilkuset żądaniach na sekundę, nie poczujesz różnicy. Ale jeśli próbujesz odpowiedzieć bardziej, zdecydowanie trzymaj się APC. Zwłaszcza jeśli Twoja aplikacja ma zbyt dynamiczne właściwości, które mogą powodować problemy z blokowaniem przy takich obciążeniach. http://www.ipsure.com/blog/2011/eaccelerator-as-zend-extension-high-load-averages-issue/ może pomóc.

Matt Dryden
źródło
2

APC segfaultsuje przez cały dzień i całą noc, nie mam doświadczenia z eAccelerator, ale XCache jest bardzo niezawodny z mnóstwem opcji i ciągłym rozwojem.

ManreeRist
źródło