2012-01-29 17 views
0

Eclipse IndigoでJavaプログラムを10,000回実行しています。実行されたすべての操作はメモリー内にあります。ディスクIOまたはネットワークIOはありません。私は、同じ入力に対して、応答時間が2msecから25msecに増加したことに気付きました。応答時間をプロットすると、グラフは線形に見えます。私はガベージコレクタをチューニングしていないと最初に考えました。最大のスループットとGC休止時間のためにガベージコレクタを設定しました。まだ違いはありません。Java - 時間の経過とともに応答時間が増加するのはなぜですか?

応答時間とJava VM GC上のスクリーンショットのために

please click the link

が、私はMacBook Proの上でOracleのJavaを実行している2011年

 
java version "1.6.0_29" 
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527) 
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode) 

以下は、私のVMの設定が

 
-server -XX:+UseParallelGC -XX:+UseParallelOldGC -Xms48m -Xmx64m -XX:NewSize=32m -XX:MaxNewSize=32m -Xss2048k -XX:SurvivorRatio=16 -XX:MaxGCPauseMillis=15 -verbose:gc -Xloggc:gclog.txt -XX:+PrintGCDetails 

感謝していますもし誰かがこれについて光を当てることができれば、それ。

は、私たちはあなたが見つけるものを教えてください:

+0

これは、あなたのPC上でCPUサイクルが枯渇している他のどのプロセスにも関連していますか? –

+0

エリックの提案に感謝します。それはアプリケーションの問題でした。 –

答えて

2

あなたが私たちに語ったことに基づいて、問題が何であるかを言うことは難しいです。

  • それはあなたのアプリケーションに自体問題である可能性があります。

  • アプリケーションを起動する際に問題が発生する可能性があります。

  • "応答時間"の測定方法に問題がある可能性があります。


あなたがより良い答えをしたい場合、あなたは、「Eclipseの藍でJavaプログラムを1万回を実行」する方法を説明する必要があります。

  • どのように応答時間が測定されていますか? Eclipseによって?何かによって?
  • Eclipseランチャーを10,000回実行しているということですか?
  • または、アプリケーションを起動しているベンチマークフレームワーククラスを実行していますか?
  • または、アプリケーションのmainを10,000回呼び出すだけですか?
  • Eclipseはテストを別のJVMまたはEclipse JVMで実行していますか?また

  • あなたは何のネットワークI/Oが存在しないと言う、127.0.0.xという、地元IPCが含まれているのでしょうか?
  • アプリケーションは実際に何をしていますか?それは何らかの形や形で何かに話していますか?
+0

スティーブンに感謝します。あなたが提供した最初のヒントが問題を解決しました。それはアプリケーションの問題でした。私は気付かなかったリストを修正していた。 –

1

あなたは、単にあなたのアプリケーションをプロファイリングすることで...それに光を当てることができます。 )

+0

私はJprobeを使ってアプリケーションをプロファイリングしましたが、何も見つかりませんでした。このプログラムは、10,000回実行されるシングルスレッドアプリケーションです。並行性に関連する問題で問題が発生してはいけません。 GCパフォーマンスの詳細はhttp://goo.gl/FTvngに掲載しました。 –

+0

"プロファイリング"があなたにできることはいくつかあります。そのうちの1つは「ホットスポット」を特定することです。どのモジュールが最も頻繁に呼び出されていますか?どのモジュールが最も長くかかりますか?これらのモジュールはどのデータ構造を使用していますか?共有ですか? – paulsm4

関連する問題