cygwin замедляют открытый файл

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

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

Есть ли простой способ сделать cygwin dlls, просто открывают файлы; без какого-либо преобразования окон Linux?

7
задан Erdem 29 March 2010 в 12:31
поделиться

1 ответ

Это зависит от того, как система была смонтирована в среде 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" при запуске сценариев autotools configure .

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

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

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

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

6
ответ дан 7 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: