gpt4 book ai didi

windows - 来自 CMD 的 Cygwin 命令很慢;来自 bash 很快

转载 作者:可可西里 更新时间:2023-11-01 12:27:08 27 4
gpt4 key购买 nike

几个月来,我一直在 Windows CMD 提示符下使用 Cygwin 命令,没有出现任何问题。在过去的几天里,每次我调用 Cygwin 命令(例如 ls)时,该命令在实际运行之前都需要几秒钟的时间来“加载”。如果我在 bash 提示符下尝试相同的命令,它会立即运行(“加载”)。

Cygwin FAQ提到 PATH 中的网络驱动器可能会导致问题,因此我尝试了我的 PATH 变量和网络连接的一些排列。下面,“full PATH”表示我原来的路径设置; “short PATH”表示只有Cygwin bin 目录的路径。时间通过 time 命令报告。

ls 的计时结果

已连接到网络:

  • bash 中运行 ls:0.124 秒
  • 在 CMD 中运行 ls(完整的 PATH):41.29 s
  • 在 CMD 中运行 ls(短 PATH):38.56 秒

网络断开:

  • bash 中运行 ls:0.125 秒
  • 在 CMD 中运行 ls(完整的 PATH):0.17 秒
  • 在 CMD 中运行 ls(短 PATH):0.19 秒

cygcheck 的结果

我运行 cygcheck -s 并注意到:

Warning: There are multiple cygwin1.dlls on your path

尽管这可能是由于从 Cygwin 的 bin 目录中运行 cygcheck 所致。我完全卸载并重新安装了 Cygwin,但仍然遇到同样的问题。

来自 netstat 的结果

我在执行 Cygwin 的 ls 之前和执行之后(停止时)运行了 netstat -a -n。我这样做了好几次,发现每次运行中有一行在延迟期间始终如一地出现:

  UDP    127.0.0.1:55030        *:*                    

端口号从test改到test。

strace 结果

我在 ls 命令上运行了 Cygwin 的 strace。大部分延迟都花在调用中,例如:

11685  886560 [main] ls 10020 pwdgrp::fetch_account_from_windows: line: <xxxx>

12684  899244 [main] ls 10020 cyg_ldap::fetch_ad_account: No entry for (objectSid=\00\00\00\00) in xxxx DC=xxxx,DC=xxxx,DC=xxxx

最佳答案

A section在 Cygwin 的常见问题解答中解决启动时间慢的问题。 Cygwin 最近更改为使用 Active Directory 查找进行身份验证,而不是使用平面文件。更改 /etc/nsswitch.conf 中的默认值

passwd:   files db
group: files db

passwd:   files
group: files

跳过 AD 查找。我的 Cygwin 命令现在又变快了。

关于windows - 来自 CMD 的 Cygwin 命令很慢;来自 bash 很快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507014/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com