Pregunta

Tengo una base de código PHP bastante grande (10k archivos) con la que trabajo usando Eclipse 3.4 / PDT 2 en una máquina con Windows, mientras que los archivos están alojados en un servidor de archivos Debian. Me conecto a través de una unidad asignada en Windows.

A pesar de tener una conexión ethernet de 1 gbit, hacer una actualización del proyecto eclipse es bastante lento. Hasta 5 minutos. Y me bloquean el trabajo mientras esto sucede.

Esto normalmente no sería un problema ya que Eclipse teóricamente no debería tener que realizar una actualización completa con mucha frecuencia. Sin embargo, también uso el complemento subclipse que activa una actualización completa cada vez que completa un cambio / actualización.

Mi corazonada es que la parte más lenta del proceso es el eclipse que comprueba los archivos de 10k uno por uno en busca de cambios en Samba.

Hay una gran cantidad de archivos en la base de código a los que nunca necesitaría acceder desde eclipse, así que no lo necesito para verificarlos. Sin embargo, no puedo averiguar cómo evitar que lo haga. He intentado marcarlos 'derivados'. Esto evita que se incluyan en el proceso de compilación, etc. Pero no parece acelerar el proceso de actualización en absoluto. Parece que Eclipse aún comprueba su estado modificado.

También he eliminado las carpetas innecesarias de la "ruta de compilación" de PDT. Esto acelera el proceso del "espacio de trabajo de la construcción", pero de nuevo no acelera la actualización real que precede a la construcción (y que es lo que lleva más tiempo).

¿Fue útil?

Solución

Gracias a todos por sus sugerencias. Básicamente, JW estaba en el camino correcto. Trabajar localmente.

Con ese fin, descubrí un complemento llamado FileSync: http://andrei.gmxhome.de/filesync/

Esto copia automáticamente los archivos modificados al recurso compartido de red. Funciona fantásticamente. Ahora puedo hacer una actualización / cambio / actualización completa desde Eclipse en un par de segundos.

Otros consejos

¿Tiene que almacenar los archivos en un recurso compartido? Tal vez pueda configurar algún tipo de duplicación automática, de modo que trabaje con los archivos localmente y se copien automáticamente en el recurso compartido. Estoy en una situación similar, y odiaría renunciar a la velocidad de edición de archivos en mi propia máquina.

Dado que está subversionado, ¿por qué no tener los archivos localmente y usar un enlace de confirmación posterior para actualizar a la última versión en el servidor dev después de cada confirmación? (o tener una cadena específica en el registro de confirmación (por ejemplo, '## DEPLOY ##') cuando desee actualizar dev, y solo ejecute la actualización cuando el enlace de confirmación posterior vea esta cadena).

Además de actualizar las aceleraciones, la ventaja de esta técnica es que puede tener archivos rotos en los que está trabajando en eclipse, y el servidor de desarrollo todavía está bien (aunque con una versión anterior del código).

La desventaja es que tienes que hacer un compromiso para insertar tus archivos guardados en el servidor dev.

Use la función de carpeta sin conexión en Windows haciendo clic con el botón derecho y seleccione " Hacer disponible sin conexión " ;. Podría ahorrar mucho tiempo y retrasos en el viaje de ida y vuelta en el protocolo de intercambio de archivos.

El uso de svn externals con el el indicador de revisión para las cosas no cambiantes podría evitar que Subclipse actualice esos archivos en la actualización Entonces de nuevo, tal vez no. Ya que tendría que hacer algunos cambios en la estructura de su repositorio de subversión para que funcione, le sugiero que haga algunas pruebas simples antes de hacerlo de verdad.

Resolví este problema cambiando " Tamaño de búfer de transferencia de archivos " en:

Ventana- > Preferencias- > Sistemas remotos-Archivos y cambiar el valor de "Tamaño de búfer de transferencia de archivos" -s Descargar (KB) y Cargar (KB) a un valor alto, lo puse a 1000 kb, por defecto es 40 kb

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top