Cygwin медленное открытие файла - PullRequest
7 голосов
/ 29 марта 2010

Мое приложение использует fopen для открытия большого количества файлов.В то время как в Linux открытие и чтение тысяч файлов не занимает даже секунды;в Cygwin это занимает более 5 секунд.

Я думаю, это потому, что функции преобразования пути в библиотеках Cygwin.Функция «открыть» немного быстрее.Если я использую -mno-cygwin, он станет очень быстрым, но я не смогу его использовать.

Есть ли простой способ заставить dll cygwin просто открывать файлы;без каких-либо преобразований Linux-Windows?

1 Ответ

6 голосов
/ 28 мая 2010

Это зависит от того, как система была смонтирована в среде 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: используйте параметр --cache-file="$HOME/.config.cache" при запуске скриптов автоинструментов configure.

Это создаст файл, в котором будут храниться предварительно записанные конфигурации, большинство из которых можно будет использовать между сборками программного обеспечения. (Это также хорошая идея при использовании Linux).

Поскольку оболочка является узким местом системы Cygwin, огромный сценарий, основанный на запуске большого количества процессов, займет навсегда , что сократит количество процессов, необходимых начать.

4: настройте Cygwin sshd и прекратите использовать командную строку Windows в пользу PuTTY.

PuTTY лучше реагирует на изменение текста на экране, так как он был создан для более зрелого интерфейса CLI * NIX. Командная строка Windows (& trade;) просто ужасна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...