我的应用程序使用fopen打开很多文件。虽然在linux中打开和读取数千个文件甚至不需要一秒钟;在cygwin中需要超过5秒钟。
我认为这是因为cygwin dlls中的路径转换功能。 'open'功能有点快。如果我使用-mno-cygwin它变得非常快但我不能使用它。
是否有一种简单的方法可以让cygwin dlls打开文件;没有任何linux-windows转换?
答案 0 :(得分: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 --cache-file="$HOME/.config.cache"
脚本时使用选项configure
。
这将创建一个包含预先录制的配置发现的文件,其中大部分可在软件版本之间使用。 (使用Linux时这也是一个好主意。)
由于shell似乎是Cygwin系统的瓶颈,一个依赖于启动大量进程的巨大脚本将永远 ,这将减少它需要的进程数量开始。
4:设置Cygwin的sshd
并停止使用Windows命令提示符以支持PuTTY。
PuTTY更好地响应屏幕上的文本更改,因为它是为* NIX更成熟的CLI界面构建的。 Windows命令提示符(™)简直太可怕了。