2012-07-05 18 views
35

En mi máquina multinúcleo, Eclipse usa entre 100 y 250% de potencia de CPU, incluso cuando está inactivo en una nueva instalación simple y un espacio de trabajo vacío. Cuando realmente hace cosas, se vuelve lento y no responde.Alto uso de CPU en Eclipse cuando está inactivo

He intentado establecer la configuración de memoria como se sugiere aquí: Eclipse uses 100 % CPU randomly. Eso no ayudó. También probé diferentes versiones de Java, a saber, OpenJDK y Oracle Java 7, y las versiones de Eclipse Juno e Indigo. Estoy en Ubuntu 12.04 LTS.

Como otro problema quizás no relacionado cuando cierro Eclipse, el proceso de Java aún permanece abierto con más del 200% de uso de la CPU y debe eliminarse manualmente.

+0

¿Qué versión de eclipse y qué versión de java? –

+0

suena como un mal complemento, ¿qué complementos instaló últimamente? – shem

+0

tal vez jvisualvm puede darte algunas pistas. – shem

Respuesta

10

He tenido este problema con los complementos, pero nunca con Eclipse.

Puede intentar depurarlo yendo a Help > About Eclipse > Installation details y deshabilitando los complementos uno por uno.

+4

Debe tenerse en cuenta que no 'desactiva' los complementos a través de los detalles de instalación en la versión Juno de Eclipse 4.2.2, solo puede desinstalarlos y reiniciar Eclipse. Dicho esto, una vez que desinstalé todos los complementos de Mylyn + el conector Subclipse Mylyn, mi instalación de Mac OS X Eclipse Juno pasó de usar el 100% + de la CPU (¡todo el tiempo!) A prácticamente nada. ¡Gracias por la sugerencia! –

+0

Desinstalar el conector SVN-Mylin parece haber ayudado en mi caso – xamde

9

He visto este tipo de comportamiento solo cuando el recolector de basura se volvió loco porque la memoria asignada realmente alcanzó los límites máximos de memoria configurados de la máquina virtual. Si tiene una instalación grande de Eclipse, su primer paso debe ser siempre el increase the memory settings in the eclipse.ini.

Activar también Ventana -> Preferencias -> General -> Mostrar el estado del montón. Le mostrará cuánta memoria usa actualmente Eclipse (en la línea de estado). Si eso va hasta el máximo permitido y no cae más (es decir, el recolector de basura no puede limpiar los objetos no utilizados), entonces esa es exactamente la indicación de lo que describí anteriormente.

Editar: También sería bueno saber qué paquete Eclipse utiliza, ya que contiene diferentes complementos por defecto. Clásico, Modelado, desarrolladores de Java EE, ...?

+0

Gracias, mi mac mostraba un 80% de CPU solo ahí. Lo revisé y siguió funcionando desde aproximadamente 490mb -> 508mb y luego retrocedió ... Hizo el cambio, y reinició el eclipse, y ahora está inactivo al 3.5% de la CPU ... Gracias. – Chrispix

19

Estaba teniendo el mismo problema hoy, y resultó ser un hilo de indexación que estaba ocupando la CPU. Recientemente agregué bastantes archivos a un proyecto y me olvidé de él. Me doy cuenta de que no es probable que alguien más tenga este problema, pero podría ser útil publicar cómo lo investigué.

Estoy ejecutando Ubuntu 12.10 con STS basado en eclipse Juno.

  1. inicio eclipse desde la línea de comandos y redirigir la salida a un archivo para que podamos obtener un volcado hilo
  2. deje que se asiente un poco, a continuación, obtener una lista del uso de la CPU para cada hilo: ps -mo 'pid lwp stime time pcpu' -Cjava. He aquí una muestra de la salida que identifica mi cpu hilo de hambre:

    PID LWP STIME TIEMPO% CPU

    6974 - 07:42 00:15:51 133

    7067 07:42 00:09: 49 86.1

  3. Convierta la identificación del hilo (en mi caso 7067) al hex 0x1b9b (ej.en la línea de comandos usando: printf "0x% x \ n" 7067)

  4. Realice un volcado de subprocesos del proceso java utilizando kill -3: kill -3 6974. El resultado se guarda en el archivo que redirigió stdout cuando usted comenzó eclipse

  5. Abrir el archivo y busca el ID hexadecimal de la rosca:

    "Enlace paso a paso la escritura demorada-10" prio = 10 tid = 0x00007f66b801a800 nid = 0x1b9b ejecutable [0x00007f66a9e46000]

    java.lang.Thread.State: RUNNABLE

    en com.ibm.etools.references.internal.bplustree.db.ExtentManager $ WriteBack.r

+17

Inspección de procesos, rastreo de subprocesos no autorizados, lectura a través de direcciones hexadecimales ... Suena como un día típico para que Eclipse funcione correctamente. –

+1

Esto fue todo para mí. Cometí el sacrílego error de extraer impulso a uno de mis directorios de proyectos y Eclipse sufrió un aneurisma. – Gary

+0

Una 'función de un clic' haciendo todas esas cosas para ti en eclipse sería agradable :-) Y la salida será: 'Desinstalar el complemento XYZ hace que Eclipse sea lento'. – Tarator

0

se enfrentaba a la misma cuestión, Pasado siguiente VM Argumento en Eclipse y funcionó bien para mí.

-Xmx1300m -XX: PermSize = 256m -XX: MaxPermSize = 256m

0

desinstalación Mylyn plugins ha solucionado el problema para mí y el aumento de rendimiento fue tan drástica que me anuncio como respuesta a un 6 años vieja pregunta

Ir a Help->About Eclipse->Installation Details->Installed Software y desinstalar todos los complementos que se sabe no está utilizando. Desinstalé solo los complementos de mylyn y me sorprendió.

Cuestiones relacionadas