Questão Por que há um atraso muito longo de 6 segundos no início do Curl


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


8


origem


Pode ser a DLL do Cygwin inicializando-se, se nenhum processo do Cygwin tiver sido iniciado anteriormente. Como você está invocando o curl - do shell do Windows ou do Cygwin bash? Você tem algum serviço do Cygwin ativado ou algum comando do Cygwin executado na inicialização ou no login? - Aaron Miller
Eu estou invocando a partir do prompt do Windows cmd (não do bash). Eu não configurei nenhum outro serviço para começar. Eu reproduzi o problema em outras máquinas, incluindo o Windows XP de 32 bits, então estou pensando que pode ser o tempo normal para a inicialização, mas quero confirmar isso. - user265445


Respostas:


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

A melhor recomendação que posso oferecer é modificar o esquema de inicialização do sistema, ou seus scripts de login, para criar um processo Cygwin, de modo que o tempo de inicialização seja "acumulado" em um ponto em que você já esteja esperando no sistema , em vez de ocorrer mais tarde quando você está esperando uma resposta rápida. Por exemplo, você pode adicionar algo como o seguinte, como um arquivo de lote, para 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 bash do Cygwin 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 quando você finalmente abrir um comando prompt e execute curl, o tempo de inicialização já terá ocorrido, e você não ficará incomodado com isso enquanto estiver executando comandos interativos.


7



Obrigado pelo link, que explica o atraso que eu estava vendo. - user265445