2011-09-23 15 views
10

Cygwinが明らかに遅い理由についていくつかの他の質問がありますが、このケースはユニークであるようです。Cygwinのbashがエラーの後に非常に遅くなった

多くのエラーが報告されていて、再起動後にbashから起動されたプロセスは非常に遅いという問題がありました。私は正直なところ、これが原因で何が起こるかわからない(私はtaskmgrでプロセスの優先度をチェックしたが、それでも正常である)。

詳細:

私は一晩中、いくつかのソケットコードのソークテストを実行しているし、私の画面にエラーが殺到見つけるために戻って午前中に来た(DialogBoxesが - 主にNULLポインタにアクセスしようとしました)だけでなく、かなりコマンドラインに送信されたものがいくつかあります。キャプチャすることができなかったテキストがかなりありました(コンピュータはほとんど反応しませんでした;手動で再起動する必要がありました)。私は、 "Win32 error 6"(私はINVALID HANDLEを意味すると仮定している)というテキストを覚えています。

再起動後、ほとんどの問題は解決しますが、Cygwin/bashは依然としてかなり反応していません。組み込みコマンドは十分にすぐに行くように見えるんが

$ time for i in {1..10}; do ls ; done  
# nb there are about 6 entries in pwd 
.... 
real 0m47.718s 
user 0m2.568s 
sys  0m23.411s 

別のbashのインスタンスを起動

$ time for i in {1..10} ; do bash -c "echo Hello" ; done 
... 
real 1m12.244s 
user 0m3.522s 
sys  0m34.460s 

はひどいスピードのために必要ではありません。別の質問で提案されているように私には、次のように走りました

$ time for i in {1..10} ; do echo Hello ; done 
.... 
real 0m0.001s 
user 0m0.000s 
sys  0m0.000s 

更新日: 私はちょうどその間にWindows Updateがインストールされていることを知りました。私はこれがあまりにも複雑すぎたり、何かを得ていないのがうれしいです。 (しかし、私は他の同僚がアップデートをインストールして問題を見ていないと信じています)。

アップデート2:

以下のコメントに答えるために、/ binにあるファイルは、CMDから何の問題もなく実行されます。また、cygwinのインストールディレクトリを完全に削除して再ダウンロードしましたが、問題はまだ発生しています。

私はまだCygwinのstraceの使い方は完全にはわかりませんが、最初の列は時間のデルタかもしれないと思います。このことを念頭に置いて、ここで問題になり数行は(0xDEADBEEFが奨励、確かではありません)です。

4100175 4101564 [main] bash 5664 _cygtls::remove: wait 0xFFFFFFFF 
4278898 4279724 [main] bash 5612 child_copy: dll bss - hp 0x628 low 0x611DC000, high 0x612108D0, res 1 
2210923 25635973 [proc_waiter] bash 5664 pinfo::maybe_set_exit_code_from_windows: pid 5400, exit value - old 0x8000000, windows 0xDEADBEEF, cygwin 0x8000000 
3595425 16085618 [proc_waiter] bash 5612 pinfo::maybe_set_exit_code_from_windows: pid 5376, exit value - old 0x8000000, windows 0xDEADBEEF, cygwin 0x8000000 
3057452 19149209 [proc_waiter] bash 5664 pinfo::maybe_set_exit_code_from_windows: pid 5612, exit value - old 0x8000000, windows 0xDEADBEEF, cygwin 0x8000000 
2631997 38835042 [proc_waiter] bash 5716 pinfo::maybe_set_exit_code_from_windows: pid 5720, exit value - old 0x8000000, windows 0xDEADBEEF, cygwin 0x8000000 
2610852 38836658 [main] bash 4624 _cygtls::remove: wait 0xFFFFFFFF 
3708283 42556365 [proc_waiter] bash 5716 pinfo::maybe_set_exit_code_from_windows: pid 4624, exit value - old 0x8000000, windows 0xDEADBEEF, cygwin 0x8000000 
3666884 42562053 [main] bash 5664 fhandler_base_overlapped::wait_overlapped: GetOverLappedResult failed, bytes 0 
2742397 45305871 [proc_waiter] bash 5664 pinfo::maybe_set_exit_code_from_windows: pid 5716, exit value - old 0x8000000, windows 0xDEADBEEF, cygwin 0x8000000 
45322195 45322997 [main] bash 3996 child_copy: dll bss - hp 0x62C low 0x611DC000, high 0x612108D0, res 1 
4247577 49581019 [main] bash 3996 _cygtls::remove: wait 0xFFFFFFFF 
4266690 49581325 [main] bash 5664 child_info::sync: pid 3996, WFMO returned 0, res 1 
49622099 49623318 [main] bash 4840 child_copy: dll bss - hp 0x690 low 0x611DC000, high 0x612108D0, res 1 
4225718 53860809 [main] bash 4840 _cygtls::remove: wait 0xFFFFFFFF 
4248491 53861119 [main] bash 3996 child_info::sync: pid 4840, WFMO returned 0, res 1 
2167422 2169463 [main] bash 1412 _cygtls::remove: wait 0xFFFFFFFF 
10369 2205831 [main] bash 1412 pwdgrp::load: \etc\passwd curr_lines 4082 
10313 2237148 [main] bash 1412 cygwin_gethostname: name A119894 
14720 2251868 [main] bash 1412 stat64: entering 
+0

を残された.infファイルを見つけるために、使用ハードウェアマネージャ

  • APPWIZ.CPL
  • からNVIDIAソフトウェアを削除NDIVIAドライバ
  • をインストールします。それは 'bash'からでなければならないのですか?エクスプローラから 'ls.exe'を実行するとどうなりますか? (それが可能かどうかわからない...) – Thomas

  • +0

    また、 'strace'を使ってシステムコールが遅いかどうか調べることもできます。 – Thomas

    +0

    @Thomas - 私は 'strace'に精通していません。出力は少しばかりです。私はここで何を探していますか? –

    答えて

    0

    をだから私は実際にこれを解決することはありません。代わりに新しいコンピュータを手に入れました。

    同様の問題が結局発生し、問題はNVIDIAドライバソフトウェアで、実際のドライバ自体ではありませんでした。

    ので、パスされました:

    • 周り
    0

    私はこれで少し経験を持っているが、私は、少なくともあなたにそれがどのようなものかについての私の意見を与えることができます。

    [proc_wiater]の行がたくさんあります。それぞれ5000個を超えています...あなたの実際のディレクトリリストよりも長いです:/ここでの問題は "lsはプログラムです"と思われます。私はあなたがこのようなばかげた時間に気付かないだろうと思っています。

    -ストレスの何も知らない人。

    0

    ダーティログファイルを作成し、awkを使用します。

    関連する問題