<?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>Neakros Blog &#187; Firefox</title>
	<atom:link href="http://neakro.net/tag/firefox/feed" rel="self" type="application/rss+xml" />
	<link>http://neakro.net</link>
	<description>Man nennt es neudeutsch 'bloggen'.</description>
	<lastBuildDate>Wed, 13 Jan 2010 21:26:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Der eigene Firefox mit PGO</title>
		<link>http://neakro.net/2009/02/der-eigene-firefox-mit-pgo.html</link>
		<comments>http://neakro.net/2009/02/der-eigene-firefox-mit-pgo.html#comments</comments>
		<pubDate>Tue, 24 Feb 2009 01:44:28 +0000</pubDate>
		<dc:creator>Neakro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[kompilieren]]></category>

		<guid isPermaLink="false">http://blog.neakro.net/?p=97</guid>
		<description><![CDATA[Seit Anfang an störte mich etwas am Firefox: seine Geschwindigkeit war im Vergleich zu Windows einfach schlecht. Was unter Windows flüssig lief, lief unter Linux ruckelnd und teilweise auch unbenutzbar langsam. Ich lebte 2 Jahre lang damit, hoffte auf eine Verbesserung in 2.0 und später dann in 3.0, aber sie blieb aus. Vor ein paar [...]]]></description>
			<content:encoded><![CDATA[<p>Seit Anfang an störte mich etwas am Firefox: seine Geschwindigkeit war im Vergleich zu Windows einfach schlecht. Was unter Windows flüssig lief, lief unter Linux ruckelnd und teilweise auch unbenutzbar langsam. Ich lebte 2 Jahre lang damit, hoffte auf eine Verbesserung in 2.0 und später dann in 3.0, aber sie blieb aus. Vor ein paar Tagen las ich durch Zufall dies: <a href="http://brainstorm.ubuntu.com/idea/18058/">Native Firefox on Ubuntu is even slower than on Wine</a>.</p>
<p>Die erste Lösung klang vielversprechend: &#8220;Compile Firefox with <a href="https://developer.mozilla.org/en/Building_with_Profile-Guided_Optimization">PGO</a> by default&#8221;. Gesagt getan. Nach einigen Sekunden Suchen, fand ich die Anleitungen im <a href="https://developer.mozilla.org/en/Linux_Build_Prerequisites">Mozilla Developer Wiki</a>.</p>
<p>Fix den Quellcode-Tarball für Firefox <a href="ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/">heruntergeladen</a> und entpackt. Laut des Wikis musste ich nun eine Datei mit dem Namen .mozconfig anlegen, um dort dann die Konfiguration für den Buildprozess festzulegen. Die Datei gehört in das root-Verzeichnis des Quellcodes. Mit einigen herausgesuchten Funktionen aus schon erstellten Firefoxen (about:buildconfig) erstellte ich nun folgende <em>.mozconfig</em>:</p>
<pre>. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt
mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py'
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-optimize
ac_add_options --enable-update-packaging
</pre>
<p>Jetzt noch fix die <a href="https://developer.mozilla.org/en/Linux_Build_Prerequisites#Build_Tools">Abhängigkeiten</a> installiert und nun musste <em>make</em> ran:</p>
<pre>make -f client.mk profiledbuild</pre>
<p><strong>profiledbuild</strong> am Ende ist wichtig, sonst wird Firefox ganz normal kompiliert!</p>
<p>Nachdem ich ein paar Abhängigkeiten korrigiert hatte, die ich wohl übersehen hatte, hatte ich viel Zeit für andere Sachen, bis der Prozess beendet war. PGO baut Firefox zweimal, daher dauert es entsprechend länger bis man fertig ist.</p>
<p>Als schließlich <em>make</em> die Fertigstellung meldete war ich ganz begierig den Firefox zu testen. Schnell einen Tarball erstellt</p>
<pre>make -C ff-opt/browser/installer</pre>
<p>und ihn von <em>./ff-opt/dist</em> entpackt in ein eigenes Verzeichnis geschoben. Dann gestartet, und: Begeisterung pur! Er ist so schnell, das hätte ich mir nicht mal in meinen kühnsten Träumen vorstellen können. Die Geschwindigkeit ist bestimmt um den Faktor 3 höher als bei dem von Mozilla vorkompilierten Firefox.</p>
<p><strong>Fazit:</strong><br />
Jeder Linux-Firefox-Benutzer sollte es mal mit einem selbst kompilierten Firefox versuchen, wenn nicht schon seine Distribution einen mit PGO kompilierten anbietet.</p>
<p><strong>Anmerkung:</strong><br />
Sicherlich gibt es noch mehr Funktionen um auch das letzte Quant Geschwindigkeit herauszuholen, aber ich bin mit dem jetzigen Ergebnis so zufrieden, dass ich momentan nicht die Lust verspüre, nochmal 2 Stunden für 0,1% verbesserte Geschwindigkeit zu investieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://neakro.net/2009/02/der-eigene-firefox-mit-pgo.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->