2016-09-07 21 views
3

非常に単純なJavaプログラムを使用すると、私はVisualVMでプログラムとプロファイルを開始します。シンプルなJavaプログラム - プロファイリングで予期しない動作が発生する

public class test { 

    public static void main(String args[]) throws InterruptedException{ 
     Thread.sleep(10000000L); 
    } 

} 

以下のメトリックからわかるように、何か背後にあるものはちょうどティックを続けています。ここで何が起こっているのだろうか?私はまた、 "サンプラー"メモリのスクリーンショットを含んでおり、プリミティブアレイの束がちょうど作成され続けているかのように見えますが、これはなぜですか?

enter image description here

enter image description here

+1

これをどのように実行しているか教えていただけますか?また、実行されているJVMに設定されているパラメータは何ですか? – StackFlowed

答えて

4

あなたはVisualVMのでプロセスに接続されています。明らかに、それはいくつかの JVMがいくつかの仕事をしているという事実をあなたに提示する作業:)具体的には、データが収集され、JMX接続を介して送信されます。いくつかのガベージが作成されます。

+1

「[オブザーバー効果](https://simple.wikipedia.org/wiki/Observer_effect)」と呼ばれています。 – Andreas

+0

マルチスレッド環境で実行した場合、これは急激に増加しますか? – Jason

+0

VisualVMのスレッド監視セクションを検査するとわかるように、常にマルチスレッド環境で実行されます。しかし、いいえ、tbisオーバーヘッドは一定です。 –

関連する問題