我有一个 x86 cygwin 安装(v. (cygwin) 2.3.1,昨天安装),其中几乎每个工具的加载速度都非常慢。grep、tail、less、which、echo、cat - 即使工作负载可以忽略不计,每个实用程序都需要 2 秒钟才能加载和执行。
我如何提高性能?如何排除故障?c:\cygwin\bin; 是路径中的第一个条目。
之前我安装过 64 位版本的 cygwin,也遇到了同样的问题。因此,我安装了 x86 版本,也遇到了同样的问题。
windows:64位的windows 7企业版。
如果本机应用程序(如 GNU emacs 和其他程序)的加载速度比 grep -h 或 echo "hi" 更快,我确信问题出在 cygwin 加载上。如何优化 cygwin 加载?
cygwin 提示需要 2-3 秒才能加载。在 cygwin 提示中,如果我执行任何 cygwin 工具,则启动时间都很好。但是,当我从 cmd.exe(命令提示符)运行 cygwin 工具时,响应时间很慢——大约 2 秒。我该如何消除这 2 秒的延迟?
答案1
如何优化 Cygwin 加载?
您需要禁用 Active Directory 查找:
A部分Cygwin 的常见问题解答中介绍了启动时间缓慢的问题。Cygwin 最近改为使用 Active Directory 查找进行身份验证,而不是使用平面文件。更改
/etc/nsswitch.conf
来自passwd: files db group: files db
到
passwd: files group: files
跳过 AD 查找。我的 Cygwin 命令现在又变得快速了。
答案2
我首先要看看存储(硬盘/SSD)的使用情况,因为这是一个非常常见的瓶颈。
检查资源监视器以了解磁盘的运行情况:
- 打开资源监视器(通过开始菜单搜索)
- 转到顶部的“磁盘”选项卡
- 在底部面板中,观察活动时间和磁盘队列长度以查看使用 Cygwin 时是否出现峰值。
如果是 SSD,存储可能不是瓶颈。通常,当磁盘队列 > 5 时,您就会开始看到问题。如果您的“绿色”或 5400 rpm 笔记本电脑硬盘速度较慢,您可能需要尝试运行碎片整理,因为 Cygwin 会安装相当多非常小的文件。
如果以上所有检查都通过了,但您仍然遇到问题,则应查看 Process Monitor 之类的程序,该程序会显示程序正在执行的操作(文件读取/写入、注册表读取/写入),这应该有助于您确定导致速度变慢的原因。此外,您还应测试执行“grep -h”之类的操作,以查看加载速度有多快。如果结果很快,则可能是您的硬盘速度很慢或出现故障,导致开销很大。
对我来说,Cygwin 提示符需要几秒钟才能打开,但所有程序至少与 Windows 等效程序和其他 cli 程序一样快。