Curlの開始に6秒の非常に長い遅延があるのはなぜですか


9

Windows 7 x64マシンにCygwinのフルインストールを行いました。マシンを再起動するたびに、Curlの起動に約6秒かかることがあります(コマンドラインオプションが指定されていない場合でも)。その後のCurlの使用では、遅延はありません。DLLが初期化されているように見えますか?他の誰かがそれを見たことがありますか?これは正常ですか?


1
Cygwinプロセスが以前に開始されていない場合は、Cygwin DLLが初期化されている可能性があります。WindowsシェルまたはCygwin bashからcurlをどのように呼び出していますか?Cygwinサービスが有効になっている、または起動時またはログイン時に実行されるCygwinコマンドがありますか?
アーロンミラー

私は(bashからではなく)Windows cmdプロンプトからそれを呼び出しています。開始する他のサービスを設定していません。32ビットWindows XPを含む他のマシンで問題を再現したので、それは起動に通常の時間かもしれないと思っていますが、これを確認したいと思います。
user265445

回答:


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"'

これにより、Cygwin bashプロセスが起動し、コンソールにウィンドウを表示せずに、何も実行せずに終了します。これにより、Cygwin DLLは、副作用を発生させることなく、自分自身をロードして初期化するように強制されます。コマンドプロンプトでcurlを実行すると、初期化時間が既に発生しているので、インタラクティブコマンドの実行中に煩わされることはありません。


リンクをありがとう、それは私が見ていた遅れを説明しています。
user265445
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.