Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Java I/O Performance iMac vs PC

Java I/O Performance iMac vs PC

Tope23.03.1018:12
Kurz zum Hintergrund:
Beruflich programmiere ich Java mit Eclipse, aktuell auf einem Windows Vista Notebook mit einem C2D T7300 2,0 GHz Prozessor. Als ich neulich mal wieder zeitlich etwas unter Druck war ist mir einmal mehr aufgefallen wie langsam die alte Möhre eigentlich ist. Da ich bestimmt 1 Stunde am Tag wartend vor meinem Rechner verbringe war der Entschluss schnell gefasst, ne neue Kiste zu kaufen.

Mit einem Kollegen habe ich mich dann beraten und er war der Meinung, daß ein neuer Rechner wohl garnicht so viel bringen würde, da bei mir wohl eher die Festplatte der Flaschenhals sei, daher würde er mir eher zu einer SSD Platte als zu einem neuen Rechner raten. Das kann ich in soweit auch unterstützen, als daß bei mir beim Build hauptsächlich die Platte am rattern ist. Außerdem war er der Meinung, daß 4 Kerne bei Java sowieso nichts bringen würden, da der Ant-Build eh immer nur einen Prozessor nutzen kann.

Da ich zuhause einen i5 habe, dachte ich mir es kann ja nichts schaden, es erstmal auszuprobieren. Ergebnis: Ein Full Build dauert auf meinem i5 ca. 1:30 Minuten. Auf meinem C2D Vista ca. 5:30 und auf dem AMD QuadCore meines Kollegen ca. 4:30.

Abgesehen davon, daß mir der Kollege die 1:30 natürlich nicht glauben mag frage ich mich natürlich auch, woher diese extreme Performance wohl kommt.

Der Ant-Build macht eigentlich nichts besonderes. Clean, Java-Files mit EJB-Doclet generieren, Klassen kompilieren, JAR-Files packen und signieren und zum Schluss alles noch in WAR-/EAR-Files verpacken.

Hat jemand ne Idee warum mein Rechner so viel schneller sein kann?

Ich vermute mal, daß es eine Kombination aus vielen verschiedenen Dingen ist. Zum einen vermute ich, daß die Apple VM etwas besser die 4 Kerne nutzen wird als die Sun VM unter Windows. Der i5 wird vermutlich auch noch etwas schneller sein als der AMD QuadCore, von dem ich gerade keine näheren Angaben habe.

Hauptsächlich ist mir jedoch aufgefallen, daß besonders der Clean-Task - also der Teil in dem die Platte erstmal geputzt wird - auf dem iMac gerade mal eine Sekunde dauert, wohingegen der Clean-Task auf meinem C2D 15-20 Sekunden dauern kann. Das bringt mich zu der Annahme, daß Dateioperationen unter OSX einfach wesentlich schneller sind als unter Win Vista/7. Da beim restlichen Build ja auch unzählige Dateioperationen stattfinden könnte ich mir gut vorstellen, daß hierin der Hauptgrund für die gesteigerte Performance liegt. Und das würde ja auch zu meiner Beobachtung passen, daß auf meinem C2D-Notbook wärend des Builds hauptsächlich die Platte am werkeln ist.

Noch zwei Details hinterher:

1. Selbst mein MacBook (Late 2009) ist in 2:30 mit dem Build fertig. Also immer noch fast doppelt so schnell wie die QuadCore Windows Möhre

2. Der QuadCore Windows Rechner hat sogar ne SSD drin. Und der Build findet auch komplett auf dieser statt.

Kann das jemand bestätigen oder gibt es gar einen anderen Grund dafür?
Sind Dateioperationen unter OSX wirklich so viel schneller als unter Windows?
0

Kommentare

Request
Request23.03.1018:37
Der i5 wird vermutlich auch noch etwas schneller sein als der AMD QuadCore,
Welcher AMD ist es denn? Die alte Phenom Generation hatte extreme Probleme was die Leistung anging, die Phenom II diskutieren aber grösstenteils mit den Core i7...

Ich nehme an du darfst das Projekt nirgends hoch laden oder?
„1984 - Think different - Macintosh - iPhone / iPad - Think nothing - 2014“
0
exAgrajag23.03.1018:40
Ich kann mir schon sehr gut vorstellen, daß das Dateisystem an sich schon eine Rolle spielt. Ob das nun so einen großen Unterschied erklären kann?

Ich hatte vor gut 3 Jahren mal ein paar Tests mit einem USB-Stick gemacht, den ich mir als Ersatz für meine 6GB-USB-Platte gekauft hatte. Das war damals der Buffalo RUF2 2GB, der schnellste Stick damals, für schlappe 85€. Ich war entsetzt, wie langsam der war. Ich hatte zum testen meinen Standard-Ordner von meiner Platte genommen (135MB, ca. 8000 Objekte, ca. 80kB durchschnittliche Dateigröße).

Ein Kopiervorgang von Platte auf den Stick dauerte mit FAT32 gut 5 1/2 Minuten. Mit HFS+J nur noch eine halbe Minute. Ich hab diesen Test mehrfach wiederholt.

Der Stick war also sehr schnell, nur konnte das FAT32 das nicht rüberbringen. Den Stick hab ich daraufhin zurückgegeben.


Mit NTFS hab ich nicht getestst. Falls es auch so viel langsamer als HFS+J ist, dann lässt sich ein guter Teil des Zeitunterschieds sicherlich schon damit erklären.
0
Slartibartfast23.03.1018:50
exAgrajag

Unter Windows wär' das nicht passiert, will damit sagen, daß die FAT32 Implementierung von OSX grottenlahm ist.
0
Slartibartfast23.03.1019:21
Tope

Ich kann nur aus eigener Erfahrung sagen, daß Dateioperationen unter Vista extrem lahmen, hat sich erst mit Windows 7 gebessert. Ein weiterer Grund könnte vielleicht ein im Hintergrund laufender Virenscanner sein?
Außerdem ist es unter Windows viel einfacher, sich sein System zu zerschießen, man müßte den Test mal mit einer frischen Installation wiederholen.
0
skid_KM23.03.1019:28
wir haben eine ähnliche Konstellation... bin der einzige im Team der unter OS X programmiert.

Unser Build (Java 1.6, Ant) hatte bestand ursprünglich aus ca. 60 javac + 60 jar calls... war unter OS X ok, unter Win XP und Win 7 um einen Faktor 5 langsamer. (Alle Rechner mit C2D 2,0-2,8 GHz).

Wir haben den Build umgestellt auf 1x javac + 30x jar (leider notwendig), damit sind die Windows Rechner fast so schnell wie der OS X.

Die Umstellung auf eine SSD (Intel X25-M) hat beim OS X Rechner ca. 30% gebracht (nur bezogen auf compile + jar).
Unter Windows 7 hat die Umstellung eines Rechners auf eine SSD 10% gebracht (die SSD ist allerdings eher von der langsameren Sorte).

Vermutung: Windows wird durch Virenscanner und merkwürdiges File Locking ausgebremst
0
Request
Request23.03.1019:31
Vermutung: Windows wird durch Virenscanner und merkwürdiges File Locking ausgebremst
Eher nicht, da Windows bei anderen Aufgaben durchaus schneller ist...ich denke eher dass da Sun Mist gebaut hat...
„1984 - Think different - Macintosh - iPhone / iPad - Think nothing - 2014“
0
Tope23.03.1019:42
Was das genau für ein AMD-QuadCore ist muss ich morgen mal in Erfahrung bringen.
Und nein, hochladen ist leider nicht drin

Den Virenscanner kann ich ebenfalls ausschliessen, da wir den extra deaktivert haben.

Wir haben in der Firma nur Rechner mit Windows Vista bzw. 7 und der Build ist auf allen Rechnern bereits deutlich langsamer als auf meinem MacBook und das ist ja auch nur ein C2D.
Dass mal einer der Windows-Rechner falsch konfiguriert ist kann ja mal vorkommen, aber alle 7 Entwicklerrechner?

Ich werde das Gefühl nicht mehr los, daß es eben einfach OS liegen könnte, was mir am Ende nur Recht wäre... Vielleicht wirds ja dann doch noch was mit dem iMac im Geschäft
0
Request
Request23.03.1019:52
um es genau zu wissen sollte man wohl am ehesten Bootcamp anstrengen...denn je nach SSD hast du schlechte R/W Raten bei kleineren Dateien als bei einer normalen HD...der 7300er ist auch nicht gerade auf der Höhe der Zeit und wie gesagt kann ein Core 2 Duo auch einen Quadcore zerlegen...je nach Situation
„1984 - Think different - Macintosh - iPhone / iPad - Think nothing - 2014“
0
Garp200023.03.1020:43
Ich habe in C(++) Apps die Erfahrung gemacht, dass Windows mit File I/O generell schnell in die Knie zu zwingen ist, das wirkt recht extrem. Bei OS X und anderen Unixen ist der Effekt so nicht aufgetreten. Gut man soll sein File I/O sowieso wie alles andere optimieren, hab ich dann auch gemacht und es hat auch unter Windows gepasst. XPerf ist ein gutes Tool von Microsoft um seinen Ressourcen Engpässen auf die Schliche zu kommen und zu sehen wo das Nadelöhr ist. Ändern wirst Du es in Deinem Fall eh nicht können, aber vielleicht ist es ja interessant zu sehen wo Deine Java Umgebung gebremst wird.

Den Vorschlag mit dem Boot Camp-Gegenvergleich find ich auch gut. Wenn Du das machst poste die Ergebnisse.
„Star of CCTV“
0
Request
Request23.03.1021:15
Ich würde mal sagen die Java VM für Windows ist schlecht (ich kann es nicht glauben dass dies an NTFS/Windows liegt da dieses OS teilweise bei Programmen in C, C++ etc. besser bzw. schneller läuft)...

Noch ein kurzer Vergleich eine Javabenchmarks:

PC mit Windows 7:
- AMD Phenom II X4 @ 3.2 Ghz, 8GB DDR3-1600 Mhz, 7200 rpm HDD

Macbook mit OS X 10.6:
- Intel Core 2 Duo @ 2.26GHz, 2GB DDR3-1066 Mhz, 7200 rpm HDD

„1984 - Think different - Macintosh - iPhone / iPad - Think nothing - 2014“
0
skid_KM24.03.1016:48
Hmmm... ist zwar ein Äpfel und Birnen (oder Äpfel und Windows) Vergleich (da die Rechner doch sehr unterschiedliche Hardware haben), dennoch ist der OS X Vorsprung interessant.

Gemäß der Homepage von Java Sci Mark messen die aber in erster Linie floating point performance.
Ist die floating point performance füf compiler relevant? Ich dachte, integer bzw. IO Performance wäre relevanter. Damit wäre das Ergebnis für die Fragestellung hier unbedeutend.
0
Tope24.03.1017:11
der AMD meines Kollegen ist ein Phenom II 945, C3 Stepping 3GHz
Mit persönlich sagt das jetzt allerdings nicht mehr. Und dazu hat er eine Intel SSD.
0
void
void24.03.1017:51
Bei uns in der Firma genau die gleiche Beobachtung... Win Faktor 4-5 langsamer.
Das ist übrigens AUCH bei SVN der Fall (Subclipse Plugin; läuft teils über Java, teils aber auch nativ). Checkouts/-ins sind ebenfalls unter Windows extrem lahm.
„Developer of the Day 11. Februar 2013“
0
Uwe229.03.1008:27
>> Und dazu hat er eine Intel SSD.

Nö, der Testrechner hat eine Super Talent Ultradrive GX MLC 32GB als System und Buildplatte.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.