【发布时间】:2015-02-09 13:25:04
【问题描述】:
在 Windows 8.1 x64 上启动任何 Cygwin 应用程序需要一分钟以上。没关系,要么我从快捷方式开始mintty,要么从bin文件夹开始cygwin.bat或ls.exe或bash.exe。他们每个人都会很慢。
在 Bash 或 mintty 启动后,它们的工作速度相当快:
$ time for i in {1..10} ; do bash -c "echo Hello" ; done
Hello
...
Hello
real 0m1.273s
user 0m0.060s
sys 0m1.181s
我尝试过的步骤:
- 重新安装并尝试了 Cygwin 和 Cygwin64 几次(版本 2.864)
- 以管理员身份启动他们
- 尝试在 Windows 7 兼容模式下运行它们
- 为 LAN as in this reply 禁用“自动检测设置”
- 已将
127.0.0.1 localhost cygdrive wpad添加到主机as in same reply - 将防病毒设置为禁用状态
- 检查是否未安装 Bash 补全(没有
/etc/bash_completion.d文件夹) - 在设备管理器中禁用所有可移动驱动器(只剩下系统 SSD 和数据 HDD)
- 尝试使用空的
etc/profile.d文件夹运行 - 尝试使用空的
etc/bash.bashrc文件运行
我还能如何找到根本原因?
附: - 我有两个不同的系统,笔记本电脑和台式机,都装有 Windows 8.1 64 位。这个问题在两者上都是 100% 可重现的。
另外,如果我在登录几秒钟后启动 Bash,它会立即启动。
【问题讨论】:
-
禁用网络适配后,cygwin 会立即启动。因此,它会尝试连接到某个网络资源。
-
网络监视器显示 cygwin 应用程序的大量网络活动。他们通过 TCP 和 LDAPMessage 从我的网络访问一些机器到 LDAP 端口。
-
我也有同样的问题。我尝试了下面的解决方案 1 和解决方案 2,但都没有解决问题。顺便说一句,当我运行“mkpasswd”时,我的组织中有一个非常长的列表。
-
@Hugues 你很可能忘记了 mkpasswd 的
-c标志。最后,您必须只将一行保存到passwd文件中。mkgroup也一样。 -
我在尝试解决方案 1 时确实包含了
-c标志;/etc/passwd和/etc/group都是单行文件。我只是在报告这样一个事实,即缓慢的原因可能是由于我的组织的用户列表很长(mkpasswd | wc -l报告 >50K 行)
标签: windows cygwin windows-8.1