- Welches ist die Höchstgeschwindigkeit einer unbeladenen Schwalbe?
- -- Brückenwächter, "Monty Python - Die Ritter der Kokosnuss"
Eigentlich wollte ich ja mal wieder einen Beitrag machen, der nichts mit Computer zu tun hat, aber dieser wird es noch nicht sein. Es ist quasi ein Nachtrag zu dem Beitrag
GCC mit Atom Optimierung. Eher durch einen Zufall ist mir aufgefallen, dass der Testdurchlauf ("Queen Greatest Hits I" von .wav nach .ogg wandeln, mit Standardeinstellungen) auf meinem Haupt-Linux-Rechner auf einmal einen Faktor von circa 30 statt den erwarteten circa 20-fach brachte.
Der Verwunderung konnte erst nach einigen Minuten Einhalt geboten werden: ich hatte einen "Tippfehler" gemacht: statt dem OggVorbis-Encoder meines Testszenarios hatte ich den OggVorbis-Encoder der Linux-Distribution verwendet. Statt der Version 1.0.2 wurde nun 1.2.0 verwendet, aber das kann nicht für einen Geschwindigkeitszuwachs von 50%25 verantwortlich sein. Dafür schon eher die Architektur: mein Linux läuft unter 64 Bit, und nicht wie das Testprogramm mit nur 32 Bit. Da wurde ich neugierig: kann der Schritt von 32 auf 64 Bit für einen Performancezuwachs von 50%25 verantwortlich sein?
Dafür habe ich mir folgendes Testszenario aufgebaut: es wurden zwei Testsysteme aufgesetzt, eins mit dem
Celeron 220, der die gleiche Architektur wie erste Generation der "Core 2"-CPUs aufweist, und eins mit dem
Atom 230. Auf dem wurde die 64-Bit Version von Ubuntu 10.04 alpha installiert. In dieser Umgebung wurde dann oggenc einmal als 64-Bit- und einmal als 32-Bit-Version laufen gelassen. Ich hatte mit einem anderen System schon mal ermittelt, dass es keinen messbaren Performanceunterschied von einem 32-Bit Programm auf einem 32-Bit- und 64-Bit-System gibt. Zum Vergleich gibt es noch die Messergebnisse meines "Haupt-Linux-Rechners", bei dem mir der Leistungszuwachs aufgefallen ist. Der Testparcours ist (wie bei mir üblich) das OggVorbis-Encodieren von "Queen Greatest Hits I".
CPU | Atom 230 | Celeron 220 | Core 2 Quad 9300 |
Architektur | 32 Bit | 32 Bit | 64 Bit | 32 Bit | 32 Bit | 64 Bit | 32 Bit | 64 Bit |
oggenc version | 1.0.2 | 1.2.0 | 1.2.0 | 1.0.2 | 1.2.0 | 1.2.0 | 1.0.2 | 1.2.0 |
Elapsed time: | 11m45.4s | 11m26.0s | 7m24.6s | 6m19.9s | 6m09.6s | 4m11.9s | 2m57.0s | 1m55.7s |
Rate: | 4.9245 | 5.0636 | 7.8139 | 9.1436 | 9.3980 | 13.7885 | 19.6218 | 30.0216 |
Das Update von oggenc von 1.0.2 auf 1.2.0 bringt 2.8%25 mehr Geschwindigkeit. Das ist aber nichts im Vergleich zum Wechsel von 32 auf 64 Bit: dort liegt der Geschwindigkeitszuwachs bei stolzen 54,3%25 (Atom) und 46,7%25 (Celeron). Mit solchen Resultaten bei einem 32/64-Bit Vergleich nie gerechnet. Schade, dass der Atom N270 keine 64-Bit Unterstützung hat, sonst würde ich meine Netbooks neu installieren. Laut Intel kann aber der N450 64-Bit Code laufen lassen. Das ist ganz klar ein Punkt, der für die Pinetrail-Plattform spricht.
Die von mir gemessenen Werte sind reine Rechenwerte aus dem Labor. Natürlich läuft ein 64-Bit Atom Rechner nicht allgemein 50%25 schneller als einer mit einem Atom im 32-Bit Modus, denn rechnen ist nur ein Teil der Arbeit, die eine CPU verrichtet. Das Umkopieren von Daten dürfte zum Beispiel sogar etwas langsamer sein, da 64-Bit Code größer ist als 32-Bit Code, und das Programm muss ja zum Beispiel in den Speicher geladen werden. Außerdem muss das Programm auch wirklich für 64 Bit compiliert sein, ein 32-Bit Programm unter einem 64-Bit Linux laufen zu lassen reicht nicht. Eine Faustregel sagt, dass man als Benutzer an einem Computer einen Geschwindigkeitszuwachs ab circa 15%25 merkt. Diese Marke könnte aber durch den Wechsel von 32 auf 64 Bit erreichbar sein.
Fazit: Bisher war meine Antwort auf die Frage "sollte ich mir besser ein 32 oder ein 64 Bit Linux installieren?" stehts: "erst ab 4GB lohnt sich ein 64 Bit Linux". Jetzt muss ich diese Frage wohl etwas differenzierter beantworten: "wenn Deine CPU 64 Bit kann, probier' 64 Bit. Falls dann etwas nicht läuft wie erwartet, kannst Du immer noch 32 Bit nehmen."
Kommentare
Und was Linux angeht: Es muss heissen: "Wenn du mehr als 1GB RAM hast, lohnt sich ein 64-Bit-Kernel." (der normale Split ist nämlich 1GB/Rest, d.h. den Speicher über 1GB kann der Kernel nicht mehr direkt ansprechen). Ein 32-Bit Userspace ist aber völlig OK, solange man keine Anwendungen hat, die mehr als ca. 3 GB Speicher sehen wollen.