<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SysEleven - Hosting für Fortgeschrittene &#187; APC</title>
	<atom:link href="http://www.syseleven.de/tag/apc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.syseleven.de</link>
	<description></description>
	<lastBuildDate>Tue, 24 Jan 2012 16:33:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>APC: Turbo für PHP Webseiten</title>
		<link>http://www.syseleven.de/blog/1009/apc-turbo-fur-php-webseiten/</link>
		<comments>http://www.syseleven.de/blog/1009/apc-turbo-fur-php-webseiten/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 09:25:46 +0000</pubDate>
		<dc:creator>Thomas Lohner</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.syseleven.de/?p=1009</guid>
		<description><![CDATA[Die Geschwindigkeit einer PHP basierten Webseite lässt mich mit einfachen Mitteln verbessern. Wordpress zum Beispiel wird mit APC viermal schneller.]]></description>
			<content:encoded><![CDATA[<p>Im Gegensatz zu anderen Programmiersprachen werden PHP-Skripte während des Aufrufs kompiliert, d.h. in eine ausführbare Form übersetzt und ausgeführt. Dieser Prozess wird bei jedem einzelnen Aufruf der Datei wiederholt. Das ist wenig effizient und lässt sich mit verschiedenen Mitteln leicht ändern.</p>
<p><a href="http://de.php.net/manual/de/book.apc.php">APC</a> ist ein so genannter &#8220;Opcode Cache&#8221;. Die Aufgabe von APC ist es, sich den aufwendigen Kompiliervorgang für spätere Zugriffe zu merken, damit dieser nur einmal ausgeführt werden muss. Bei jedem weiteren Aufruf der Datei liegt diese bereits vorkompiliert im Arbeitsspeicher.</p>
<h2>Wie viel schneller wird meine Webseite?</h2>
<p>Als Beispiel habe ich die Performance <del>einer</del> unserer WordPress-Installationen gemessen. Mit dem Tool Apache Bench (alternativ http_load oder jmeter) kann man ermitteln wie oft eine Webseite in einem festgelegten Zeitraum aufgerufen werden kann. Daraus ergibt sich die Geschwindigkeit der Webseite in der Einheit &#8220;Aufrufe pro Sekunde&#8221; (Requests per second). Je höher diese Zahl, desto schneller ist die Webseite. Oder anders herum, desto mehr Anfragen können je Zeiteinheit bearbeitet werden.</p>
<p><br/><b>Test 1: WordPress mit standard PHP</b><br />
<div class="special-outer"><div class="special-inner"><code>ab -t 60 -c 20 http://SysEleven.de/</p>
<p>Time taken for tests:   60 seconds<br />
Complete requests:      341<br />
Requests per second:    5.66 [#/sec]<br />
</code><br />
</div></div></p>
<p><br/><b>Test 2: WordPress mit aktiviertem APC</b><br />
<div class="special-outer"><div class="special-inner"><code>ab -t 60 -c 20 http://SysEleven.de/</p>
<p>Time taken for tests:   60 seconds<br />
Complete requests:      1294<br />
Requests per second:    21.57 [#/sec]<br />
</code><br />
</div></div></p>
<h2>Ein Fazit</h2>
<p>WordPress ist mit APC knapp <b>viermal schneller</b> als ohne. Aber: Wie viel schneller eine Webseite tatsächlich wird, hängt von der verwendeten Software ab. <b>Wichtig:</b> Nicht jede Software ist kompatibel zu APC, aber ein Versuch lohnt sich allemal. </p>
<p>Die Auslastung des Caches und die Erfolgsquote (Hits/Misses) ist, stellt APC in Diagrammen dar:</p>
<p><img src="http://www.syseleven.de/wp-content/uploads/2010/03/apc_status.gif" alt="" title="apc_status" width="425" height="224" class="aligncenter size-full wp-image-1031" /></p>
<h2>Alternativen</h2>
<p>Neben APC gibt es noch <a href="http://eaccelerator.net/">eAccelerator</a> und <a href="http://xcache.lighttpd.net/">XCache</a>. Performancemäßig nehmen die drei sich wenig, welche Software man einsetzt ist eher Geschmacksache bzw. eine Frage der Kompatibilität &#8211; was mit dem einen Cache nicht kompatibel ist, wird mit einem anderen vielleicht doch funktionieren. Das hartnäckige Gerücht, <a href="http://www.zend.com/de/products/guard/zend-optimizer">Zend Optmizer</a> gehöre auch dazu, ist übrigens falsch. Zend Optimizer &#8220;optimiert&#8221; zwar den Quellcode, ist aber kein Cache und merkt sich diese Verbesserungen nicht. Im Gegenteil: Die gleiche Arbeit wird bei jedem Aufruf erneut ausgeführt. Aus Sicht der Performance ist das wenig förderlich, weil es durch die ständige Mehrarbeit die Ausführung von PHP sogar noch verlangsamen kann.</p>
<h1>Links</h1>
<p><a href="http://de.php.net/manual/de/book.apc.php">http://de.php.net/manual/de/book.apc.php</a><br />
<a href="http://www.zend.com/de/community/php">http://www.zend.com/de/community/php</a><br />
<a href="http://eaccelerator.net/">http://eaccelerator.net/</a><br />
<a href="http://xcache.lighttpd.net/">http://xcache.lighttpd.net/</a><br />
<a href="http://httpd.apache.org/docs/2.2/programs/ab.html">http://httpd.apache.org/docs/2.2/programs/ab.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.syseleven.de/blog/1009/apc-turbo-fur-php-webseiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

