2009-12-03 16 views
12

Estamos desarrollando aplicaciones Java/SpringSource con Eclipse en máquinas Vista de 32 bits con 4 GB de RAM. El sistema operativo expone aproximadamente 3.3 GB de RAM debido a las reservas de hardware, etc. en el espacio de direcciones virtuales. Me encontré con varios controladores Ramdisk que pueden crear un disco virtual desde la memoria RAM oculta por el sistema operativo y estoy buscando sugerencias sobre cómo usar el disco virtual de 740MB para acelerar el desarrollo en nuestro entorno.Optimizar el uso de Ramdisk para desarrollo Eclipse

La parte más lenta del desarrollo para nosotros es la compilación, así como el inicio de SpringSource dm Server.

Una opción es configurar Vista para cambiar al Ramdisk. Eso funciona, y acelera notablemente el desarrollo en situaciones de poca memoria. Sin embargo, los 3,3 GB disponibles para el sistema operativo a menudo son suficientes y hay muchas situaciones en las que no usamos mucho el archivo de intercambio.

Otra opción es utilizar el Ramdisk como ubicación para archivos temporales. Utilizando el comando Vista mklink, creé un enlace rígido desde donde el área de trabajo del servidor SpringSource dm normalmente reside en Ramdisk. Eso mejora significativamente los tiempos de inicio del servidor, pero no hace nada por los tiempos de compilación. Hay aproximadamente 500MB libres en el Ramdisk cuando el directorio de trabajo se utiliza por completo, por lo que hay mucho más.

¿Qué otros archivos/directorios pueden ser candidatos para colocar en el Ramdisk? Archivos relacionados con Eclipse? (Partes de) el JDK?

¿Hay una herramienta de fuente abierta/gratuita para Vista que me muestre qué archivos se utilizan con más frecuencia durante un período de tiempo para reducir las conjeturas?

+0

PS - Si todo esto se resuelve moviendo a un sistema operativo de 64 bits, pero eso no es una opción viable por el momento. –

Respuesta

11

Aquí es lo que hice

se trasladó a la Ramdisk:

  • JDK (suprimido algunos archivos innecesarios, por ejemplo, demostraciones, src.zip)
  • directorio de plugins de Eclipse
  • directorio de trabajo SpringSource
  • Directorios de la biblioteca SpringSource

Hay un buen truco que le permite mover carpetas (o archivos para el caso) al disco virtual sin hacer un solo cambio en la configuración.

  1. Copia la carpeta a la Ramdisk
  2. Cambiar nombre de la carpeta original (I añadió -copiar hasta el final)
  3. Utilice el comando MKLINK/J a hacer un enlace desde el lugar en el disco en el que el directorio solía ser antes de que cambió el nombre a la que ha copiado en el disco RAM

Por ejemplo:

cd C:\Dev\Apps 
Xcopy jdk R:\jdk\ /s 
ren jdk jdk-COPY 
mklink /J jdk R:\jdk 

El Ramdisk I seleccionado tiene una opción para persistir al momento del cierre del sistema (suponiendo que no se produce un bloqueo). Elegí mover solo archivos relativamente estáticos al Ramdisk, así que una vez que tengo un buen reinicio, siempre debería encontrar mi Ramdisk en el estado en que lo necesito.

En las máquinas anteriores a la Vista puede sustituir la unión de SysInternals por mklink.

+0

tal vez podría funcionar también con http://wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM y luego modificar las rutas de jre en Windows -> Preferences -> Java -> Compiler – max4ever

+0

Gracias por estas instrucciones. Realmente me ayudó a acelerar mi Eclipse. El único problema es que cada vez que reinicio mi máquina, rehago todos estos pasos. ¿Hay alguna forma de crear un disco RAM persistente en retstarts o shutdowns? Estoy usando Imdisk para crear un Ramdisk en mi máquina. –

+0

@HimanshuYadav: Primo Ramdisk es un producto ramdisk que persiste con su disco RAM en el disco duro. –

5

Puede intentar mover su espacio de trabajo Eclipse a un disco RAM. Estoy bastante seguro de que ni javac, ni el compilador de Eclipse están usando ningún archivo temporal, por lo que va directamente de los archivos * .java a * .class además de copiar los archivos de recursos de la ubicación de origen a una carpeta de destino.

Otra alternativa que puede considerar es utilizar una unidad de estado sólido (SSD). Verá una mejora significativa en el rendimiento en muchas áreas que están leyendo y escribiendo archivos desde el disco.

+1

Mi preocupación con mover el espacio de trabajo al disco RAM es la posible pérdida de trabajo en caso de una interrupción. Mudarse a una SSD no es una opción en este momento, pero estamos mirando algo en el futuro (probablemente al mismo tiempo que pasamos al sistema operativo de 64 bits :-) –

+1

Puede lidiar con una pérdida de trabajo al tener su código de área de trabajo bajo control de versión. Algo como Subversion o Git te permitiría enviar cambios rápidamente a un almacenamiento persistente. –

0

No creo que mover la carpeta JDK y complementos al ramdisk es una buena solución para este caso, ya que la mayoría de las veces estos IO no son el cuello de botella para el eclipse. Intenté con su solución y descubrí que la carpeta workspace.metadata debería moverse al ramdisk, que podría ayudar a construir y ejecutar la velocidad. Y si es posible, debe mover toda su carpeta de espacio de trabajo debajo del disco RAM, y usar algún control de versión para garantizar la seguridad de los datos. Buena suerte.

+2

Resulta que mover JDK y complementos hizo una gran diferencia para mí ... Por otro lado, estaría muy preocupado por mover mi espacio de trabajo al disco RAM. Un bloqueo o un corte de energía podrían eliminar bastante trabajo. –

3

Estoy utilizando el software SoftPerfect RAM Disk. Instalé el JDK, Eclipse, Maven, Gradle y Ant en él. También mi espacio de trabajo, mis repositorios git de desarrollo y el repositorio local Maven (todas las dependencias descargadas) se encuentran en la unidad RAM. También creé un directorio "home de usuario" en la unidad RAM y cambié eclipse.ini para que apuntara a este nuevo directorio "home de usuario". El rendimiento ha mejorado dramáticamente y Eclipse ahora se inicia en menos de 10 segundos. Documenté mi enfoque aquí:

http://www.whizu.org/articles/how-to-install-eclipse-on-a-ramdrive.whizu

Cuestiones relacionadas