Perché c'è un ritardo di 6 secondi molto lungo all'inizio di Curl


9

Ho eseguito un'installazione completa di Cygwin sul mio computer Windows 7 x64. Dopo il riavvio di ogni macchina, l'avvio di Curl può richiedere circa 6 secondi (anche se non sono state specificate opzioni della riga di comando). Sugli usi successivi di Curl non ci sono ritardi. Sembra che una DLL sia in fase di inizializzazione o? Qualcun altro l'ha visto ed è normale?


1
Potrebbe essere l'inizializzazione della DLL Cygwin se nessun processo Cygwin è stato precedentemente avviato. Come stai invocando il ricciolo - dalla shell di Windows o da Cygwin Bash? Hai servizi Cygwin abilitati o comandi Cygwin eseguiti all'avvio o al login?
Aaron Miller,

Lo sto invocando dal prompt di cmd di Windows (non da bash). Non ho configurato altri servizi per l'avvio. Ho riprodotto il problema su altre macchine tra cui Windows XP a 32 bit, quindi sto pensando che potrebbe essere il normale orario di avvio, ma voglio confermare questo.
user265445,

Risposte:


7

E 'normale; la prima volta che viene eseguita la DLL Cygwin, esegue diversi passaggi di inizializzazione , che possono richiedere molto tempo, per configurare l'ambiente Cygwin. Questa inizializzazione si verifica la prima volta dopo l'avvio del sistema che viene creato un processo Cygwin e sfortunatamente non esiste un vero modo per aggirarlo.

La migliore raccomandazione che posso offrire è quella di modificare il tuo schema di avvio del sistema, o i tuoi script di accesso, per creare un processo Cygwin, in modo che il tempo di inizializzazione venga "inserito" nel momento in cui stai già aspettando di aspettare sul sistema , invece di verificarsi in seguito quando ti aspetti una risposta rapida. Ad esempio, è possibile aggiungere qualcosa di simile al seguente, come file batch, a C:\Users\<your username>\AppData\Local\Microsoft\Windows\Start Menu\Programs\Startup:

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

Ciò avvierà un processo bash di Cygwin che abbastanza rapidamente non fa nulla e quindi esce, senza visualizzare una finestra sulla console - costringendo così la DLL di Cygwin a caricarsi e inizializzarsi, senza produrre effetti collaterali e in modo che quando si apre finalmente un prompt dei comandi ed esegui arricciatura, il tempo di inizializzazione si sarà già verificato e non sarai infastidito da esso durante l'esecuzione di comandi interattivi.


Grazie per il link, che spiega il ritardo che stavo vedendo.
user265445
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.