Mengapa ada penundaan 6 detik yang sangat lama di awal Curl

9

Saya melakukan instalasi penuh Cygwin pada mesin Windows 7 x64 saya. Setelah setiap mesin melakukan boot ulang, Curl dapat memakan waktu sekitar 6 detik untuk memulai (bahkan jika tidak ada opsi baris perintah yang ditentukan). Pada penggunaan Curl selanjutnya tidak ada penundaan. Sepertinya DLL sedang diinisialisasi atau? Adakah yang melihat itu dan apakah ini normal?

pengguna265445
sumber
1
Bisa jadi Cygwin DLL menginisialisasi sendiri, jika tidak ada proses Cygwin telah dimulai sebelumnya. Bagaimana Anda menggunakan curl - dari shell Windows, atau dari Cygwin bash? Apakah Anda memiliki layanan Cygwin yang diaktifkan, atau perintah Cygwin yang berjalan saat startup atau login?
Aaron Miller
Saya memintanya dari Windows cmd prompt (bukan dari bash). Saya belum mengkonfigurasi layanan lain untuk memulai. Saya telah mereproduksi masalah pada komputer lain termasuk Windows XP 32 bit, jadi saya pikir ini mungkin waktu yang normal untuk memulai tetapi saya ingin mengonfirmasi hal ini.
user265445

Jawaban:

7

Ini normal; saat pertama kali Cygwin DLL berjalan, ia melakukan beberapa langkah inisialisasi , yang berpotensi memakan waktu, untuk mengatur lingkungan Cygwin. Inisialisasi ini terjadi pertama kali setelah boot sistem yang proses Cygwin dibuat, dan sayangnya tidak ada jalan nyata di sekitarnya.

Rekomendasi terbaik yang dapat saya tawarkan adalah memodifikasi skema startup sistem Anda, atau skrip login Anda, untuk membuat proses Cygwin, sehingga waktu inisialisasi akan "digulirkan" pada titik di mana Anda sudah mengharapkan untuk menunggu pada sistem , daripada terjadi nanti saat Anda mengharapkan respons cepat. Misalnya, Anda dapat menambahkan sesuatu seperti berikut ini, sebagai file batch, ke C:\Users\<your username>\AppData\Local\Microsoft\Windows\Start Menu\Programs\Startup:

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

Ini akan meluncurkan proses bash Cygwin yang cukup cepat tidak melakukan apa-apa dan kemudian keluar, tanpa menampilkan jendela di konsol Anda - sehingga memaksa Cygwin DLL untuk memuat dan menginisialisasi sendiri, tanpa menghasilkan efek samping, dan ketika Anda akhirnya membuka command prompt dan jalankan curl, waktu inisialisasi akan terjadi, dan Anda tidak akan terganggu olehnya saat menjalankan perintah interaktif.

Aaron Miller
sumber
Terima kasih atas tautannya, itu menjelaskan keterlambatan yang saya lihat.
user265445