2010-03-29 15 views
7

Mi aplicación utiliza fopen para abrir una gran cantidad de archivos. Mientras que en Linux abrir y leer miles de archivos ni siquiera toma un segundo; en Cygwin toma más de 5 segundos.cygwin slow file open

Creo que es porque las funciones de conversión de ruta en cygwin dlls. la función 'abrir' es un poco más rápida. Si uso -mno-cygwin se vuelve muy rápido pero no puedo usarlo.

¿Hay una forma fácil de hacer que los dll de cygwin solo abran archivos; sin ninguna conversión de linux-windows?

Respuesta

6

Depende de cómo se montó el sistema en el entorno Cygwin.

$ mount 
C:/cygwin/bin on /usr/bin type ntfs (binary,auto) 
C:/cygwin/lib on /usr/lib type ntfs (binary,auto) 
C:/cygwin on/type ntfs (binary,auto) 
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto) 
D: on /cygdrive/d type iso9660 (binary,posix=0,user,noumount,auto) 

La opción de montaje "binario" hace tan CRLF < ->LF conversiones no se realizan en los archivos leídos del volumen. Esto es predeterminado.

Algunas cosas que puede hacer para acelerar el símbolo Cygwin son los siguientes:

1: Añadir las siguientes líneas a su ~/.bashrc:

# eliminate long Window$ pathnames from the PATH 
export PATH='/bin:/usr/bin:/usr/local/bin' 

# check the hash before searching the PATH directories 
shopt -s checkhash 

# do not search the path when .-sourcing a file 
shopt -u sourcepath 

2: Desconectar unidades de red.

3: Utilice la opción --cache-file="$HOME/.config.cache" al ejecutar autotools configure guiones.

Esto creará un archivo que contendrá descubrimientos de configuraciones pregrabadas, la mayoría de las cuales se pueden usar entre compilaciones de software. (Esta también es una buena idea cuando se usa Linux).

Desde la cáscara parece ser el cuello de botella del sistema Cygwin, un guión enorme que se basa en iniciar un gran número de procesos se llevará a para siempre y esto va a reducir el número de procesos que necesita para empezar.

4: Configure Cygwin's sshd y deje de usar el Símbolo del sistema de Windows a favor de PuTTY.

PuTTY responde mejor al texto cambiante en la pantalla, ya que fue creado para la interfaz CLI más madura de * NIX. El símbolo del sistema de Windows (™) es simplemente horrible.

+0

También hay puttycyg: http://code.google.com/p/puttycyg/ Le permite usar masilla con un Cygterm – dbellizzi

+0

mintty también es bueno. –