2010-07-21 9 views
6

Ich muss häufig Java-Code kompilieren, vor allem Sachen wie GWT, die ewig dauern. Ich kann diesen Overhead nicht vermeiden, aber ich möchte ihn mit besserer Hardware minimieren. Welcher Faktor wird diese Art von Kompilierung so schnell wie möglich machen? (Ich weiß, dass es etwas subjektiv ist, aber wenn ich zur Kompilation komme, bin ich mir sicher, dass einige Faktoren wichtiger sind als die anderen).Welcher Hardware-Faktor wichtig für die schnelle Code-Kompilierung ist

Zum Beispiel denke ich, dass ein Dual Core mit 3,6 GHz/Core schneller als ein Quad Core mit 2,8 Ghz/Core sein kann, wenn es zum Kompilieren kommt (besonders wenn Java Code/GWT Code Compilation momentan single ist) Gewinde).

Also, welche Art von Faktor, den ich beim Kauf Hardware in Bezug auf dieses spezifische Problem betrachten sollte?

Edit:

ich es ganz allgemein finden, wenn über diese Zusammenstellung sprechen, ohne auf meine spezifische Situation zu beziehen. Ich habe es mit GWT & Scala Kompilation, die verdammt langsamer ist, obwohl ich nicht eine hohe Last über meine Festplatte während der Kompilierung beobachten.

Soll ich es schneller mit der CPU von 4+ Kerne von 2,4 GHz oder CPU von 2 Kernen von 3,4 GHz machen? Werden Dual 2GB DDR3 RAM schneller oder Dual 4GB DDR2 schneller? Wird RAID 0 einen großen Unterschied machen?

+0

Könnte vom Compiler abhängen. Ein intelligenter Compiler könnte Ihre Quelle in unabhängige Gruppen partitionieren und sie parallel kompilieren. –

Antwort

1

Speicher wird sicherlich ein Faktor sein. Wenn der Compiler den erforderlichen Status im physischen Speicher nicht behalten kann, werden Sie einen großen Erfolg bei Seitenwechseln haben.

2

RAM und eine schnelle Festplatte in diesem Fall. Im Falle der neuesten C++ - Compiler ist die CPU auch ein Faktor.

+0

Hmm, meiner Meinung nach ist mein AMD Athlon X2 1.7 2Ghz mit 4GB RAM viel langsamer als Core 2 Dual 2.4Ghz mit 1GB RAM bei der Erstellung von GWT. Und wir verwenden die gleiche Art von HDD (Hatachi SATA 5400 rpm) und OS (Ubuntu 10.04) –

+0

Es ist sehr gut möglich, dass der Compiler für Intel CPUS optimiert ist. Es hängt auch von dem Code ab, den Sie kompilieren, wenn er voller Algorithmen ist und relativ klein ist, dann kann die CPU zum Engpass werden. Aber in den meisten Fällen, IMHO, ist der Engpass HDD und RAM –

0

Speicher und Festplatte Geschwindigkeit sind die wichtigsten Dinge. Wenn Sie häufig kompilieren, sollte mehr Arbeitsspeicher bedeuten, dass auf mehr Dateien aus dem Cache statt von der Datei zugegriffen wird. Schreibzeit ist in der Regel HD-abhängig, und das Kompilieren von Java bedeutet normalerweise das Schreiben vieler separater Dateien.

Das Dateisystem, das Sie verwenden, kann hier einen großen Einfluss haben, so dass Sie Ihre Festplatte defragmentieren können.

Wenn Speicher und HD keine Engpässe sind, dann könnte die Anzahl der Kerne in Ihrer CPU von Bedeutung sein, wenn Ihre Umgebung schlau genug ist, uns davon zu machen (IMHO die meisten Umgebungen machen hier einen schlechten Job).

Wie bei Teekannen und kochendem Wasser dauert es auch länger, einen Compiler, der überwacht wird, zu kompilieren.

+0

Also die CPU Hz und CPU Cache Memory ist nicht so wichtig wie RAM & Festplatte? Hmm ... –

+0

IMHO der Engpass in Kompilation ist in der Regel Festplatte, nicht CPU. Das Lesen und Schreiben einer großen Anzahl von Dateien (und auch das Berechnen von Abhängigkeiten) ist normalerweise wesentlich langsamer als die Kosten der Kompilierung. Warum kompilierst du das GWT immer wieder neu, BTW? – Uri

+0

Ich weiß es nicht. Ich habe GWT kompiliert von gwt-maven-plugin. Immer wenn ich den Java-Code ändere (auch wenn die Klasse überhaupt nicht mit dem GWT-Code in Verbindung steht), wird das Plugin neu kompiliert. –

Verwandte Themen