6 Stimmen

Wie startet man Eclipse mit niedriger Priorität unter Windows?

Ich führe Programme von Eclipse (unter Windows) aus, die viel CPU-Zeit beanspruchen. Um zu vermeiden, dass mein gesamter Rechner überlastet wird, setze ich die Priorität mit dem Task-Manager auf Niedrig. Dies ist jedoch ein mühsamer manueller Prozess. Gibt es eine Möglichkeit, dass Eclipse diese Priorität automatisch setzen kann?

EDIT: Ich erkannte, dass jeder bestimmte Launcher (Java, Python usw.) seine eigene Konfigurationsmethode hat, also werde ich diese Frage auf den Java-Bereich beschränken, was ich am meisten brauche.

5voto

George Forman Punkte 559

Ich habe das gleiche Problem unter Windows - ich starte Subprozesse, die alle CPUs nutzen (thread-parallele Jobs), aber ich möchte eine gute Reaktionsfähigkeit in meiner Windows-Entwicklungsumgebung.

Solution : nach dem Start mehrerer Aufträge:

DOS cmd>> wmic process where name="javaw.exe" CALL setpriority "below normal"

Nein, dies hat keine Auswirkungen auf den Prozess eclipse.exe.

Java-Lösung : Fügen Sie diesen Code in Ihre CPU-intensiven Programme ein, um deren eigene Windows-Priorität zu senken:

public static void lowerMyProcessPriority() throws IOException {
    String pid = ManagementFactory.getRuntimeMXBean().getName();
    int p = pid.indexOf("@");
    if (p > 0) pid = pid.substring(0,p);
    String cmd = "wmic process where processid=<pid> CALL setpriority".replace("<pid>", pid);
    List<String> ls = new ArrayList<>(Arrays.asList(cmd.split(" ")));
    ls.add("\"below normal\"");
    ProcessBuilder pb = new ProcessBuilder(ls);
    pb.start();
}

Ja, getestet. Funktioniert unter Win7.

2voto

Daniel Spiewak Punkte 53301

Ich gehe davon aus, dass Sie diese Programme mit External Tools starten. Wenn ja, dann können Sie den Startbefehl so ändern, dass er die start /low Hack, der bereits beschrieben wurde. Wenn diese Anwendungen jedoch einen speziellen Starttyp haben (z. B. Java-Anwendung o. Ä.), dann haben Sie ein Problem. Die einzige Möglichkeit, dies zu ändern, besteht darin, den Quellcode von Eclipse zu öffnen, den Starttyp zu finden und herauszufinden, wo die Aufgaben verteilt werden, und ihn dann so zu ändern, dass er start /low . Tut mir leid, aber ich glaube nicht, dass es dafür eine einfache Lösung gibt.

0voto

marcospereira Punkte 11795

Eine bessere Alternative ist die Konfiguration der Speichermenge, die Eclipse verwenden wird: http://www.eclipsezone.com/eclipse/forums/t61618.html

Und führen Sie eine Google-Suche nach den Parametern -Xmx und -Xms für JVM durch (die Sie für Läufer innerhalb von Eclipse).

Mit freundlichen Grüßen

0voto

Ich habe vor einiger Zeit einige Zeit damit verbracht, dies zu untersuchen. Es gibt keine Methode innerhalb Java, um die Priorität zu senken (soweit ich das sehen konnte), also müssen Sie den Ansatz "start /min" verwenden. Ich habe nicht versucht, das zum Laufen zu bringen.

Stattdessen habe ich einen Multi-Kernel-Prozessor. Das schafft Platz für andere Dinge, selbst wenn ein Java-Programm auf einem Kernel Amok läuft.

Dringend empfohlen.

0voto

sandos Punkte 832

Ich würde das auch gerne haben, seltsam, dass es nicht möglich ist, wirklich. Ich weiß, dass man Thread-Prioritäten festlegen kann, aber ich denke, dass in Windows-Land alle Threads sozusagen "innerhalb" der Prozesspriorität geplant werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X