2016-12-12 16 views
2

Cygwinスクリプトを使用してWindows .EXEファイルを実行しており、パフォーマンス上の問題が発生しています。私はthis oneを含むCygwinのパフォーマンスに関するさまざまな投稿を見てきました。そのうちの1人はanswersでCygwinの内部構造を十分に掘り下げて問題があると思います。しかし、これらの投稿はスタートアップ時間やタブ補完などのように思われます。私たちがベンチマーキングの魔女狩りを開始する前に、私は質問したいと思っていました:Windows EXEが遅れて実行される可能性があるという本質的な理由はありますか? CygwinとBATの比較Windowsの.EXEはCygwin経由でBAT経由より遅く実行されていますか?

+1

CPU負荷が高い場合は、暴走スレッドを示している可能性があります。これは、プログラムのバグとCygwinの起動方法の違いによって引き起こされると考えられます。 –

答えて

2

実際のプログラムではありません。

ハウスキーピングとスタッフの実行前にプログラムが異なる場合があります。 CmdはおそらくCreateProcessを直接呼びます。 Cygwinのbashは、最初に引数の解析、ワイルドカードの展開、Cygwinの低速実装によるforkを行い、解析された引数をexecと呼びます。これは、Cygwinを一緒に文字列にしてCreateProcessに渡す必要があります。しかし、結局のところ、親にはもう結びついていない新しいプロセスが作られます。プログラムがどれだけ速く動作するかは、誰がプログラムを起動したのではなく、そのプログラムに依存します。

+0

標準的なハンドルの設定に違いはありませんか? –

+1

@ HarryJohnston:それは分かりませんが、それはプログラムの実行速度ではなく、それらを介した入出力にのみ影響します。 – Joey

+1

通常、yesですが、十分にバグの多いプログラムは、標準のハンドルによって異なる動作をする可能性があります。それは私の最初の、あるいは私の2番目の推測ではありませんが、私はそれを完全に排除しません。 :-) –

関連する問題