Właśnie testuje bardzo proste komendy:Dlaczego Cygwin wykonuje polecenia powłoki bardzo wolno?
while true; do bash -c "echo hello"; done
Znajdziesz ile powolny w bash Cygwin jest. Czy ktoś wie dlaczego?
Jest to nowa instalacja cygwin 1.7 na win7.
dzięki Jareda testowania pomysłu, I zmodyfikowane polecenia to (dodaje bash -c):
time for i in {1..10} ; do bash -c "echo Hello" ; done
Hello
...
real 0m7.711s //it's the problem
user 0m0.091s
sys 0m0.476s
Może problem polega na tym, że Windows 7 nie może tworzyć procesów bardzo szybko? –
Windows nie może * rozwidlać * procesów bardzo szybko. W rzeczywistości nie "widelec" w ogóle. Cygwin fałszuje to, ale nie może zrobić tego tak blisko, jak efektywnie, jak prawdziwa puszka * nix. Każdy proces zaczyna się od zera i musi załadować i zainicjować bibliotekę DLL cygwin, libc itp., Którą załadował system fork-and-go. – cHao
Ale dziwne jest to, że podczas polecenia tworzenia 10 procesów na około 7,7 sekund, procesor jest pusty i widać, że czas użytkownika i sys jest nieco. Wygląda na to, że bash czeka na coś, ale na co czeka? – Lcsky