2010-03-29 44 views
7

我的应用程序使用fopen打开很多文件。虽然在Linux中打开并阅读数千个文件甚至不需要一秒钟;在cygwin中需要超过5秒。cygwin慢文件打开

我认为这是因为cygwin dll中的路径转换函数。 '打开'功能有点快。如果我使用-mno-cygwin,它会变得非常快,但我无法使用它。

有没有简单的方法,使cygwin DLL只是打开文件;没有任何Linux的Windows转换?

回答

6

这取决于如何在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) 

的安装选项“二进制”使得它如此CRLF < - >LF转化不会从卷读取文件执行。这是默认设置。

有些事情可以做,以加快Cygwin的提示如下:

1:将下列行添加到您的~/.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:断开网络驱动器。

3:在运行autotools configure脚本时使用选项--cache-file="$HOME/.config.cache"

这将创建一个文件来保存预先记录的配置发现,其中大部分可在软件构建之间使用。 (这在使用Linux时也是一个好主意)。

由于shell似乎是Cygwin系统的瓶颈,一个依赖启动大量进程的巨大脚本永远需要,这将减少启动所需的进程数量。

4:设置Cygwin的sshd并停止使用Windows命令提示符以支持PuTTY。

PuTTY更好地响应屏幕上的文本,因为它是为* NIX的更成熟的CLI接口而构建的。 Windows命令提示符(™)简直太可怕了。

+0

还有puttycyg:http://code.google.com/p/puttycyg/ 它可以让你使用putty与Cygterm – dbellizzi 2012-05-01 18:54:59

+0

mintty也不错。 – 2016-02-19 15:42:49