1

アプリケーションの 1 つを Java で調整しようとしています。私は JAVA-Profiler を使用しており、そこからいくつかのレポートを取得しました。アプリケーションのページ フォールトの数が 30000 ~ 35000 の範囲であることがわかりました。この数値が高すぎるか正常かを判断するにはどうすればよいですか? 最初の 1 分間と 30 分後も同じデータを取得しています。

私の RAM は 2 GB で、アプリケーションをシングル スレッドで使用しています。

スレッドは 3 秒ごとにキューからメッセージを読み取ろうとしており、キューは空です。

なんの処理もしていないので、ページフォルトは一切発生しないはずだと思います。ここに案内してください。

4

2 に答える 2

1

JVM を起動すると、最大ヒープ サイズが連続ブロックとして予約されます。ただし、この仮想メモリは、これらのページにアクセスするときにのみメイン メモリになります。つまり、ヒープが 4 KB 大きくなるたびに、ページ フォールトが 1 回発生します。同じ方法で、スレッド スタックからもページ フォールトが発生します。

35K ページ フォールトは、約 140 MB のヒープを使用していることを示しています。

ところで、25 ポンドで 8 GB を購入できます。アップグレードを検討するかもしれません。

于 2013-02-14T18:37:25.820 に答える
0

あなたのJVMは何ですか?HotSpot の場合は、-XX:LargePageSizeInBytes や -XX:+UseMPSS などの JVM オプションを使用して、必要なページ サイズを強制し、ページ スワップを最小限に抑えることができます。他の JVM にも同様のオプションがあるはずだと思います。

これを見てください: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

于 2013-09-18T18:05:48.247 に答える