2009-02-07 12 views
20

Mein Kollege bemerkte, dass wenn javac kompiliert wird, es nur einen einzelnen Kern verwendet. Gibt es etwas wie den Befehl -j mit dem gcc für Java, mit dem wir den Compiler-Workload über Cores oder Prozessoren verteilen können? Wenn nicht, glauben Sie, dass dies jemals möglich sein wird oder gibt es eine Art von grundsätzlichen Einschränkungen aufgrund des Designs von Java?Gibt es eine Möglichkeit, die Multicore/Multiprozessor-Leistung des Java-Compilers zu verbessern?

Die Umgebung ist Linux mit der Sun J2SE 1.6.0.11 jdk.

Antwort

5

Obwohl nicht genau eine Antwort auf Ihre Frage, unterstützen einige Build-Umgebungen wie ant auch die Parallelisierung von Builds. Wenn Ihr Abhängigkeitsdiagramm dies zulässt, können Sie mehrere JavaCs gleichzeitig ausführen lassen.

+1

Bezüglich der parallelen Aufgabe von ant: "Es sollte als eine fortgeschrittene Aufgabe betrachtet werden, die in bestimmten Batch-Verarbeitungs- oder Testsituationen verwendet werden sollte, anstatt ein einfacher Trick, um Bauzeiten auf einer Mehrweg-CPU zu beschleunigen" - http: // ant .apache.org/manual/CoreTasks/parallel.html –

+0

Ich denke, das ist die neue URL für diese Seite http://ant.apache.org/manual/Tasks/parallel.html – Michael