<?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>sw4 Stefan Wild &#187; php</title>
	<atom:link href="http://sw4.de/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://sw4.de</link>
	<description>digitale Kommunikation</description>
	<lastBuildDate>Tue, 22 Jun 2010 11:22:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>HipHop macht aus PHP Quellcode C++</title>
		<link>http://sw4.de/2010/02/hiphop-macht-aus-php-quellcode-c/</link>
		<comments>http://sw4.de/2010/02/hiphop-macht-aus-php-quellcode-c/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 07:58:12 +0000</pubDate>
		<dc:creator>Stefan Wild</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.sw4.de/?p=335</guid>
		<description><![CDATA[HipHop for PHP heißt die Technologie, die von einem Facebook Team in den letzten Monaten entwickelt wurde. Heute früh wurde sie der Öffentlichkeit präsentiert. Die Gründe, einen solchen Aufwand zu betreiben, um PHP schneller ausführen zu können, liegen für Facebook auf der Hand. PHP ist leicht zu erlernen und zu nutzen, neuer Code kann schnell [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developers.facebook.com/news.php?blog=1&amp;story=358">HipHop for PHP</a> heißt die Technologie, die von einem Facebook Team in den letzten Monaten entwickelt wurde. Heute früh wurde sie der Öffentlichkeit präsentiert. Die Gründe, einen solchen Aufwand zu betreiben, um PHP schneller ausführen zu können, liegen für Facebook auf der Hand. PHP ist leicht zu erlernen und zu nutzen, neuer Code kann schnell aufgebaut und auch wieder überarbeitet werden, auch der Einstieg für neue Mitarbeiter ist unproblematisch. Desweiteren besteht Facebook bereits aus über einer Million Zeilen PHP.</p>
<p><span id="more-335"></span></p>
<p>Die Probleme mit PHP liegen jedoch ebenso auf der Hand. Da PHP eine interpretierte Scriptsprache ist, erzeugt es eine hohe Last auf CPU und Speicher. Trotzdem soll die Applikationslogik (bei Facebook ebenfalls in PHP geschrieben) einfach wieder zu verwenden sein. Der Lösungsansatz, Kernkomponenten der Applikation als PHP Extensions in C++ (oder mit Schnittstellen in einer anderen Sprache) zu schreiben, ist damit nicht praktikabel, zumal die Entwickler dafür eine Menge mehr Know-How mitbringen müssen. Denn für die PHP Extension Entwicklung sind weitere Kenntnisse in C++ und in der PHP API nötig.</p>
<p>Als Lösung hat Facebook PHPHipHop entwickelt, das es ermöglicht, PHP Quellcode in C++ Quellcode zu transformieren und dann in Maschinencode zu kompilieren (hierfür wird bei Facebook g++ eingesetzt). Die CPU Last auf den Webservern ist dabei um 50% niedriger bei gleichem Traffic, bei API Anfragen sind es 30% weniger CPU Last bei doppeltem Traffic. Diese Messungen stammen aus dem Facebook Produktivbetrieb – PHPHipHop ist dort bereits seit sechs Monaten im Einsatz und verarbeitet etwa 90% aller Zugriffe.</p>
<p>Viel Aufmerksamkeit hat das Team um <a href="http://www.facebook.com/hzhao">Haiping Zhao</a> typisierten Variablen gewidmet. Durch Eingrenzung der genutzten PHP Variablen auf skalare C++ Typen ist der größte Performancegewinn gelungen. Einige seltener genutzte Features (wie z.B. die Funktion eval() ) der dynamischen Skriptsprache konnten nicht übertragen werden.</p>
<p>Für die Entwicklung gibt es außerdem einen experimentellen Interpreter namens HPHPi, mit dem sich die Transformationen im Entwicklungsprozess testen lassen, bevor neuer Code kompiliert und produktiv eingesetzt wird.</p>
<p>Einen festen Zeitplan (&#8220;soon&#8221;) gibt es nicht, die nächsten Schritte bis zur Veröffentlichung von HipHop stehen aber fest:</p>
<ul>
<li>Momentan ist PHPHipHop kompatibel mit PHP Version 5.2, Unterstützung für Version 5.3 soll als nächstes folgen.</li>
<li>Da Facebook auch einen eigenen HTTP Server auf libevent Basis geschrieben und auf PHPHipHop angepasst hat, wird noch an einer Lösung gearbeitet, Webserver wie Apache und nginx (voraussichtlich per fcgi) mit PHPHipHop zu nutzen.</li>
</ul>
<p><object id="utv641082" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="386" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="utv_n_169924" /><param name="flashvars" value="autoplay=false" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.ustream.tv/flash/video/4409735" /><embed id="utv641082" type="application/x-shockwave-flash" width="480" height="386" src="http://www.ustream.tv/flash/video/4409735" allowscriptaccess="always" allowfullscreen="true" flashvars="autoplay=false" name="utv_n_169924"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://sw4.de/2010/02/hiphop-macht-aus-php-quellcode-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XCache unter debian etch</title>
		<link>http://sw4.de/2008/08/xcache-unter-debian-etch/</link>
		<comments>http://sw4.de/2008/08/xcache-unter-debian-etch/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 09:45:34 +0000</pubDate>
		<dc:creator>Stefan Wild</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xcache]]></category>

		<guid isPermaLink="false">http://www.sw4.de/wordpress/?p=49</guid>
		<description><![CDATA[Unter debian etch (stable) gibt es das Paket php5-xcache nicht. Zwar existiert eine Anleitung, wie man das entsprechende Paket aus Lenny (testing) installiert, das führt jedoch zu einem Fehler (libc6) in den Abhängigkeiten. Die Lösung: Inzwischen gibt es einen Backport für etch zum Download. Diesen kann man dann z.B. per folgendem Befehl installieren: dpkg -i php5-xcache_1.2.2-2~bpo40+1_i386.deb [...]]]></description>
			<content:encoded><![CDATA[<p>Unter debian etch (stable) gibt es das Paket php5-xcache nicht. Zwar existiert eine <a href="http://www.howtoforge.de/howto/xcache-in-php5-debian-etch-lighttpd-integrieren/">Anleitung</a>, wie man das entsprechende Paket aus Lenny (testing) installiert, das führt jedoch zu einem Fehler (libc6) in den Abhängigkeiten.</p>
<p>Die Lösung: Inzwischen gibt es einen Backport für etch zum <a href="http://packages.debian.org/etch-backports/php5-xcache">Download</a>. Diesen kann man dann z.B. per folgendem Befehl installieren:</p>
<blockquote><p>dpkg -i php5-xcache_1.2.2-2~bpo40+1_i386.deb</p></blockquote>
<p><strong>Ergänzung:</strong> PHP mit XCache kann so natürlich auch unter Apache2 betrieben werden.</p>
<p><strong>Update: </strong>Inzwischen haben wir auf allen Servern das stabilere <a href="http://www.php.net/apc/">APC</a> installiert. Dieses lässt sich sowohl unter Etch als auch Lenny mit dem folgenden Befehl installieren</p>
<blockquote><p>apt-get install php-apc</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sw4.de/2008/08/xcache-unter-debian-etch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.134 seconds -->
