为什么 Curl 启动时会有长达 6 秒的延迟

为什么 Curl 启动时会有长达 6 秒的延迟

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

答案1

这是正常的;第一次运行 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"'

这将启动一个 Cygwin bash 进程,该进程很快什么也不做然后退出,而不会在控制台上显示窗口 - 从而强制 Cygwin DLL 加载并初始化自身,而不会产生任何副作用,这样当您最终打开命令提示符并运行 curl 时,初始化时间已经发生,并且在运行交互式命令时您不会因此而烦恼。

相关内容