News-Meldung vom 12.12.2011 13:15 Uhr
Vor zwei Jahren stolperten die Mozilla-Entwickler schon einmal über das Problem, jetzt trifft es sie erneut: Der freie Browser Firefox ist wieder einmal so groß, dass er sich auf einem 32-Bit-Windows nicht mehr erstellen lässt.
Die an 90 Prozent der Anwender ausgelieferte Windows-Version wird mit "Profile-Guided"-Optimierung (PGO) erzeugt. Dabei finden zwei Compiler-Durchgänge statt. Der im ersten erzeugte Code sammelt bei der Ausführung Informationen über sein Laufzeitverhalten. Diese "Profile"-Daten dienen dann im zweiten Compiler-Lauf zum Erstellen eines optimierten Browsers. Das PGO-Verfahren ist seit fast vier Jahren bei Mozilla in Betrieb, es brachte am Anfang einen Leistungsschub von rund 10 Prozent.
Nun scheitern jedoch die Builds für 32-Bit-Windows daran, dass der Linker dort mehr als 3 GByte Speicher benötigen würde, was das Betriebssystem nicht zulässt. Anfang 2010 war ein ähnliches Problem aufgetreten, als die PGO-Builds an der voreingestellten Linker-Grenze von 2 GByte scheiterten.
Das ließ sich jedoch durch den Linker-Schalter /3GB umgehen. Zur Behebung der jetzigen Situation gibt es aber keinen Switch. Den Entwicklern bleiben drei Möglichkeiten: Code aus dem eigentlichen Browser in dynamische Bibliotheken auszulagern, die 32-Bit-Version auf einem 64-Bit-Windows zu übersetzen oder auf Microsofts Visual Studio 2010 umzusteigen.
Nach ersten Tests könnte das Verlagern von Teilen der WebGL-Implementierung rund 300 KByte sparen. Die neuere Version von Visual Studio brauchte in einem Testlauf ebenfalls weniger Speicher als die bislang benutzte, und ein 64-Bit-Windows stellt dem 32-Bit-Linker einen Adressraum von 4 GByte zur Verfügung.
(ck)
Version zum Drucken Per E-Mail versenden Newsletter abonnieren
Permalink: http://heise.de/-1393652
Mehr zum Thema Browser Softwareentwicklung Mozilla Firefox
HTML5, CSS3, WebGL: Das iX-Sonderheft zum Thema Webdesign fasst die wichtigsten Neuerungen der aktuellen und kommenden Webstandards zusammen.
Parallelprogrammierung - die Kunst der Multi-Core-Nutzung
Agile ALM - agile Praktiken im Application Lifecycle Management
Webentwicklung - Applikationen für mobile Clients