2

私は 2 つのバージョンを持つ Java プログラムを実行しています。1 つは GUI 付きで、もう 1 つは GUI なしです。

GUI は常に CPU の 100% を使用するので満足していますが、GUI を使用しない (より高速であると思われる) ものは CPU の 5 ~ 25% しか使用しません。どちらのバージョンも、計算に関してはまったく同じです。Eclipse とシェルから実行すると、同じ問題が発生します。

-Xms と -Xmx を使用してより多くのメモリを割り当てることを考えましたが、CPU 使用率は変わりません。

また、ターミナルでプロセスの優先順位を -15 に設定しようとしましたが、顕著な違いはありませんでした。

Eclipse とターミナルで、コードが 100% の CPU を使用していることを確認するにはどうすればよいですか。

4

2 に答える 2

3

2つの可能性が見えます

  1. CPUバウンドだと確信していますか?そこに無限ループをドロップして、スパイクがあるかどうかを確認します。

  2. お使いの PC はクアッドコアですか? PC と GUI では 100% が 25% である可能性があります。

  3. これは非 GUI バージョンだとおっしゃっていますが、やり過ぎprintlnですか。つまり、非バッファ印刷ですか。

可能であれば並列処理は #2 を修正し、おそらくいくつかの設計変更により #1 も修正します

于 2013-08-27T09:01:48.870 に答える