Donnerstag, 24. Mai 2012, 08:41

Du bist nicht angemeldet.



lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

1

Montag, 7. April 2008, 16:36

Performancevergleich verschiedener Linuxsysteme

Mein konkretes Ziel ist es die Ausführungsgeschwindigkeit eines selbstgeschriebenen, rechenintensiven Java-Programms zu erhöhen. Nun hat mich interessiert, ob es Performanceunterschiede zwischen 32-Bit und 64-Bit-Plattformen gibt. Ich habe dann einige Performancetests durchgeführt, die dann zu einem für mich recht interessanten Bild geführt haben:

Auf einem AMD Sempron 3000+ 64 bit, 512 MB Arbeitsspeicher, lasse ich das Javaprogramm 10 Minuten lang laufen und zähle die programminternen Durchläufe (wobei der Zeitstop erst beginnt, wenn sich der HotSpot-Compiler der JVM warmgelaufen hat).

Ich messe die Performance meines Javaprogramms zunächst auf einem
Ubuntu Hardy mit Gnome, 32-Bit-Version
das mir als Vergleichsgröße dient.

In allen Testfällen wurde nicht geswapt. Das Swappen scheidet also als Performancebremse aus. Es wurde stets mit Java6 gearbeitet.

Die Ergebnisse:

Debian 4.0 Basisinstallation + Xfce, 64-Bit-Version
Performancegewinn: +7,5%

ArchLinux 64-Bit Basisinstallation + Xfce, 64-Bit-Version
Performancegewinn: +16,3%

ArchLinux 64-Bit Basisinstallation + Xorg und dessem integriertem Fenstermanager
Performancegewinn + 24,0%

Meine Erkenntnisse und Fragen:

Gut, dass Gnome langsamer läuft als Xfce ist ja hinlänglich bekannt. Allerdings hätte ich dieses eher auf die Dauer des Hochfahrens bezogen. Mit top habe ich festgestellt, dass im Ruhezustand sowohl bei Gnome als auch Xcfe die CPU idle bei 98,5-100% liegt. Es steht also bei Gnome wie bei Xfce etwa die gleiche CPU-Kapazität zur Verfügung. Warum sollte dasselbe Programm unter Gnome langsamer laufen als unter Xcfe, wenn nicht geswappt wird? Oder sollte der Unterschied zwischen Ubuntu-Gnome-32-bit und Debian-Xfce-64-bit im wesentlichen auf dem 32/64-Bit-Unterschied beruhen?

Dann hat mich verwundert, dass ein ArchLinux-System gegenüber einem Debian doch um einiges schneller ist, auch wenn es beides 64-Bit-Versionen sind und gleichsam Xfce verwendet wird. Woran mag das liegen? Werden im Debian-Basissystem doch etliche Dienste mehr gestartet? Aber auch hier die Frage: Die CPU liegt im Ruhezustand in beiden Fällen bei annähernd 100% idle. Was macht dann Debian langsamer? Oder wurde bei ArchLinux mit anderen Comilierflags gearbeitet?

Und dann der ArchLinux-ArchLinux-Vergleich: Was bremst bei Xfce so im Vergleich zu einem nacktem Xorg? CPU-idle liegt in beiden Fällen bei annähernd 100%.

Kurzum ich war erst einmal begeistert, was rauszuholen ist, auch wenn ich es nicht so richtig verstehe. Kann mir jemand die Performanceunterschiede erklären? (Vielleicht denke ich falsch?)

Und: Ein vom Basissystem her aufgebautes ArchLinux scheint eine wirklich interessante Alternative für mich zu werden. Zumal nicht nur das Javaprogramm schneller läuft. Auch die Standardprogramme wie Dateimanager oder Texteditor sind auf einem ArchLinux+Xfce wirklich ein Genuss. Draufklicken und schon ist das Programm voll da.

Viele Grüße,
lacarpe
ubuntufreund No. 30
think globally, act locally

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »lacarpe« (7. April 2008, 16:54)


lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

2

Samstag, 12. April 2008, 01:05

Ubuntu ist nicht langsamer als wie ArchLinux!

Ich bin zwar hundemüde und will jetzt in's Bett, aber das muss ich noch kurz loswerden:

Ich habe eben mittels Alternateinstallation ein rudimentäres Ubuntu-64-bit-Kommandozeilensystem aufgesetzt. Ich denke das ist mit einem ArchLinux-64-bit-Basissystem vergleichbar. Um den Einfluss auf die Performance durch einen Windowsmanager quasi gegen Null gehen zu lassen, habe ich auf Ubuntu Xorg+Enlightenment aufgesetzt. Bei ArchLinux war ein minimalistischer Windowsmanager nach der Xorg-Installation bereits vorhanden.

Ich habe auf beiden Systemen das selbe rechenintensive Javaprogramm laufen lassen und siehe da:

Archlinux: 80 Rechendurchläufe in 10 Minuten
Ubuntu: 80 Rechendurchläufe in 10 Minuten

Ubuntu ist demnach prinzipiell nicht langsamer als ArchLinux. Somit sollte es möglich sein ausgehend vom Basissystem ein Ubuntu aufzubauen, das genauso flott läuft wie etwa ArchLinux.

Morgen ... äh heute nach dem Schlafen ... werde ich nocheinmal ein Ubuntu-Minimalsystem aufsetzen, dann aber in der 32-bit-Version. Ich will doch nun endlich mal sehen, ob 64-bit in meinem Fall (rechenintensives Javaprogramm) Performancegewinne ergibt.

Spannend!
ubuntufreund No. 30
think globally, act locally

basslord

Ubuntufreund

Beiträge: 2 671

Ubuntu: 12.04

Kernel: 3.2.0-24-generic

Desktop: KDE

Architektur: 64-bit

Danksagungen: 1 / 1

  • Private Nachricht senden

3

Samstag, 12. April 2008, 12:48

Hm, mich würde ja mal interessieren, was das Proggie so alles anstellt auf dem System. Was ist da alles an der Abarbeitung beteiligt? Doch kaum sämtliche im System vorhandene Software. Ich stelle mir nur die Frage, woher der Performanceunterschiede bei den vorangegangenen Tests gekommen waren.

Du sagst ja selbst, das Programm ist rechenintensiv. Gut, ergo braucht es Prozessorpower. Das ist ein Faktor. Aber die "Dicke" des Systems? Hm...
Keine Frage, dass schlankere Systeme reaktiver sind und somit sicher spürbar flotter. Aber als Benchmark eine Rechenaufgabe stelle ich mir nicht sonderlich aussagekräftig vor. Aber ich bin auch kein AEler...

Dass 64-bittige Systeme prinzipbedingt von Fall zu Fall eine Performacesteigerung bringen, steht natürlich auch außer Frage.

Tja, spannend aber auf jeden Fall.
"Ohne Musik wäre das Leben ein Irrtum." - Friedrich Nietzsche

lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

4

Sonntag, 13. April 2008, 16:16

Hm, mich würde ja mal interessieren, was das Proggie so alles anstellt auf dem System. Was ist da alles an der Abarbeitung beteiligt?
Es rechnet und rechnet und rechnet. Fremdprogramme sind nicht beteiligt.
Ich stelle mir nur die Frage, woher der Performanceunterschiede bei den vorangegangenen Tests gekommen waren.
Das verstehe ich auch nicht. Die CPU-Auslastung im Ruhezustand ist bei Gnome gegenüber Xfce imho kaum größer. Somit steht in beiden Fällen dieselbe CPU-Power für das Javaprogramm zur Verfügung. Gnome belegt zwar direkt nach dem Start mehr RAM als Xfce, aber das RAM ist auch mit Javaprogramm nicht ausgelastet. Zumindestens wird nicht geswapt.

Und an dieser Stelle würde ich mich über einleuchtende technische Erklärungen freuen. Es muss ja einen Grund haben, dass mein Programm unter Ubuntu-Standard-Installation langsamer läuft.
Aber als Benchmark eine Rechenaufgabe stelle ich mir nicht sonderlich aussagekräftig vor. Aber ich bin auch kein AEler...
Es ist kein offizieller Benchmarktest. Ich habe lediglich für mich und meine(!) sehr spezifische Anwendungssituation herausfinden wollen, ob Ubuntu an sich tatsächlich zu weniger Performance bei meinem Programm führt. Ob 64-Bit gegenüber 32-Bit zu signifikanten Steigerungen führt, welchen Einfluss die Wahl eines anderen Windowsmanagers/Desktopsystems hat usw.

In wiefern solche Ergebnisse verallgemeinerbar sind, kann ich nicht sagen. Aber ich vermute einfach mal eine Tendenz.
Tja, spannend aber auf jeden Fall.
Find ich auch. 8o


Also ich habe gestern noch mal ein bisschen rumgetestet und ergänze mal:

Archlinux-Basissystem-64-Bit + enlightenment + nv-Treiber:
80 Rechendurchläufe in 10 Minuten

Ubuntu-Basissystem-64-Bit + enlightenment + nv-Treiber:
80 Rechendurchläufe in 10 Minuten

Ubuntu-Basissystem-32-Bit + enlightenment + nv-Treiber:
77 Rechendurchläufe in 10 Minuten

Ubuntu-Basissystem-32-Bit + fluxbox + nv-Treiber:
77 Rechendurchläufe in 10 Minuten

Ubuntu-Basissystem-32-Bit + enlightenment + nvidia-proprietär-Treiber:
77 Rechendurchläufe in 10 Minuten

Ubuntu-Basissystem-32-Bit + xfce4 + nvidia-proprietär-Treiber:
70 Rechendurchläufe in 10 Minuten

Ubuntu-Basissystem-32-Bit + xfce4 + nv-Treiber:
69 Rechendurchläufe in 10 Minuten

Ubuntu-Standardinstallation-32-Bit (Live-CD) + nvidia-proprietär-Treiber:
65 Rechendurchläufe in 10 Minuten


Das bedeutet für mich (persönlich!) konkret:

Ein Wechsel von Ubuntu auf Arch (geweils 64 Bit) würde bringen:
0% Performancegewinn für mein Javaprogramm (nichts anderes messe ich!)
(Allerdings könnte Arch in der 32-Bit-Version Vorteile bringen, denn dort wird auf i686 optimiert, während Debian und Ubuntu nur auf i386 optimieren.)

64-Bit statt 32-Bit bringt
+3,9% für mein Javaprogramm
(Das rechtfertigt für mich derzeit keinen Wechsel auf 64-Bit)

Basissystem+Xfce statt Ubuntustandardinstallation bringt
+7,7% für mein Javaprogramm
(Fluxbox und enlightenment würden gegenüber Ubuntu-Gnome-Standard sogar +18% bringen, wobei dort noch keine Dienste wie HAL oder CUPS laufen)

nv (640x480) oder nvidia (1280x960) macht keinen Unterschied.

Fazit:

Ein Wechsel auf ArchLinux kommt für mich damit derzeit nicht in Frage. Bin erleichtert :)

Letztlich würde ich mal vermuten, dass die Diskussion ArchLinux versus Ubuntu (von der man derzeit ja öfters mal liest) schieflagig ist. Wenn man Ubuntu eine "Langsamkeit" gegenüber ArchLinux unterstellt, dann stimmt das (vermutlich) ersteinmal nur dann, wenn man das Ubuntu-Standardsystem mit Arch vergleicht. Und da vergleicht man nun mal Äpfel mit Birnen. Ubuntu kann genauso wie Arch auf "schnell" getrimmt werden. In beiden Fällen beginnt man halt mit einem Basissystem, dass man schrittweise aufbaut (mit der damit verbundenen Mehrarbeit und dem notwendigen Wissen).

Und mit meinem Basissystem+Xfce bin ich nun erstmal glücklich :thumbsup:
ubuntufreund No. 30
think globally, act locally

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »lacarpe« (14. April 2008, 10:50)