Por que existe um atraso muito longo de 6 segundos no início do Curl

9

Eu fiz uma instalação completa do Cygwin na minha máquina Windows 7 x64. Após a reinicialização de cada máquina, o Curl pode demorar cerca de 6 segundos para iniciar (mesmo que nenhuma opção de linha de comando tenha sido especificada). Nos usos subsequentes do Curl, não há atraso. Parece que uma DLL está sendo inicializada ou? Alguém mais viu isso e isso é normal?

user265445
fonte
11
Pode ser a DLL do Cygwin se inicializando, se nenhum processo do Cygwin tiver sido iniciado anteriormente. Como você está chamando curl - no shell do Windows ou no Cygwin bash? Você tem algum serviço Cygwin ativado ou algum comando Cygwin executado na inicialização ou no login?
Aaron Miller
Estou invocando-o no prompt do cmd do Windows (não no bash). Não configurei nenhum outro serviço para iniciar. Reproduzi o problema em outras máquinas, incluindo o Windows XP de 32 bits, e acho que pode ser o momento normal para iniciar, mas quero confirmar isso.
user265445

Respostas:

7

Isto é normal; Na primeira vez em que a DLL do Cygwin é executada, ela executa várias etapas de inicialização , que podem ser demoradas, para configurar o ambiente do Cygwin. Essa inicialização ocorre na primeira vez após a inicialização do sistema que um processo Cygwin é criado e, infelizmente, não há uma maneira real de contornar isso.

A melhor recomendação que posso oferecer é modificar seu esquema de inicialização do sistema, ou seus scripts de login, para criar um processo Cygwin, para que o tempo de inicialização seja "aumentado" em um ponto em que você já esteja esperando o sistema , em vez de ocorrer mais tarde, quando você espera uma resposta rápida. Por exemplo, você pode adicionar algo como o seguinte, como um arquivo em lotes, a C:\Users\<your username>\AppData\Local\Microsoft\Windows\Start Menu\Programs\Startup:

c:\cygwin\bin\run.exe '/bin/bash -c "ls > /dev/null"'

Isso iniciará um processo de Cygwin bash que rapidamente não faz nada e sai, sem exibir uma janela no console - forçando a DLL do Cygwin a carregar e inicializar a si mesma, sem produzir efeitos colaterais e, assim, quando você finalmente abrir um prompt de comando e executar curl, o tempo de inicialização já ocorreu e você não ficará incomodado com ele enquanto executa comandos interativos.

Aaron Miller
fonte
Obrigado pelo link, que explica o atraso que eu estava vendo.
user265445