为什么 Curl 开始有很长的 6 秒延迟

use*_*445 9 windows-7 cygwin 64-bit delay curl

我在我的 Windows 7 x64 机器上完全安装了 Cygwin。每次机器重新启动后,Curl 可能需要大约 6 秒才能启动(即使没有指定命令行选项)。在 Curl 的后续使用中没有延迟。看起来正在初始化一个 DLL 或?有没有其他人看到过,这是正常的吗?

Aar*_*ler 7

这是正常的; Cygwin DLL 第一次运行时,它会执行几个初始化步骤,这可能很耗时,以设置 Cygwin 环境。这种初始化发生在系统启动后第一次创建 Cygwin 进程,遗憾的是没有真正的解决方法。

我能提供的最好建议是修改您的系统启动方案或您的登录脚本,以创建一个 Cygwin 进程,以便在您已经期望等待系统的时候“滚动”初始化时间,而不是在您期待快速响应时发生。例如,您可以将以下内容作为批处理文件添加到C:\Users\<your username>\AppData\Local\Microsoft\Windows\Start Menu\Programs\Startup

c:\cygwin\bin\run.exe '/bin/bash -c "ls > /dev/null"'
Run Code Online (Sandbox Code Playgroud)

这将启动一个 Cygwin bash 进程,该进程相当快地什么都不做然后退出,而不会在您的控制台上显示一个窗口——从而迫使 Cygwin DLL 加载和初始化自身,而不会产生任何副作用,因此当您最终打开一个命令提示符并运行curl,初始化时间已经发生了,运行交互式命令时不会被它烦死。