2008-09-24 9 views
6

Estoy ejecutando programas desde Eclipse (en Windows) que consumen mucho tiempo de CPU. Para evitar empantanar toda mi máquina, establezco la prioridad en Bajo con el Administrador de tareas. Sin embargo, este es un proceso manual engorroso. ¿Hay alguna manera de que Eclipse pueda establecer esta prioridad automáticamente?¿Cómo iniciar desde Eclipse en baja prioridad en Windows?

EDIT: me di cuenta de que cada iniciador en particular (Java, Python, etc.) tiene su propio método de configuración, por lo que restringiré esta pregunta al dominio Java, que es lo que más necesito.

Respuesta

0

Una mejor alternativa es configurar la cantidad de memoria que utilizará Eclipse: http://www.eclipsezone.com/eclipse/forums/t61618.html

Y hacer una búsqueda en Google sobre los parámetros -Xmx y -Xms para JVM (que se podría configurar para corredores dentro de Eclipse).

Saludos cordiales

+0

no tengo ninguna necesidad de cambiar el uso de la memoria en realidad, lo cual es fácil como usted dice. Estoy ejecutando programas intensivos en CPU. – adum

2

Asumo que inicie estos programas usando herramientas externas. Si es así, entonces puede modificar el comando de inicio para usar el truco start /low descrito anteriormente. Sin embargo, si estas aplicaciones tienen un tipo de lanzamiento especial (como la aplicación Java o similar), entonces estás en problemas. La única forma en que podría cambiar esto sería abrir la fuente de Eclipse, encontrar ese tipo de inicio y dónde despacha tareas y luego modificarlo para usar start /low. Lo siento, pero no creo que haya una solución simple para esto.

0

Pasé un tiempo atrás para investigar esto. No existe el método dentro de Java para disminuir la prioridad (por lo que pude ver), por lo que debe emplear el enfoque "inicio/min.". No intenté que eso funcionara.

En su lugar obtuve un procesador multi-kernel. Esto da lugar a otras cosas, incluso si un programa Java se ejecuta de forma desordenada en un kernel.

Muy recomendado.

0

Me gustaría esto también, extraño que no sea posible, realmente. Sé que puedes establecer prioridades de hilos, pero creo que en windows-land, los hilos están programados "dentro" de la prioridad del proceso, por así decirlo.

-4

Si lo necesita sólo en el desarrollo puede establecer la prioridad de todos los demás procesos a alta ...

+0

Si configurar uno es engorroso ... ¿no pondría a todos los demás aún peor? – Scorpio

2

Tengo el mismo problema en Windows --- iniciando subprocesos que utilizan todas las CPU (trabajos paralelos de subprocesos), sin embargo, quiero buena capacidad de respuesta en mi entorno de desarrollo de Windows.

Solución: después del lanzamiento de varios puestos de trabajo:

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

No, esto no afectará proceso eclipse.exe.

Java Solución: Inserte este código en sus programas de la CPU-intensa para reducir su propia prioridad de Windows:

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(); 
} 

Sí, probado. Funciona en Win7.

+0

gracias. el cmd de dos es muy útil para cosas por lotes :) – wuppi

0

Utilice una herramienta de sistema operativo o un java.exe falso para capturar el comando realmente largo javaw.exe que genera el eclipse launcher.

Omitir eclipse.exe y ejecutar javaw.exe directamente.

Una vez que tenga el lanzamiento de javaw.exe directa y correctamente.

START/BelowNormal \ ruta \ javaw.exe un montón de parámetros-a-carga-espacio de trabajo

Cuestiones relacionadas