性能调整,检测和页面错误

时间:2013-02-08 07:26:33

标签: java performance profiling page-fault

我正在尝试在JAVA上调整我的一个应用程序。 我正在使用JAVA-Profiler并从中获得一些报告。 我看到应用程序的页面故障数量范围从30000到35000不等。 我怎样才能确定这个数字是太高还是正常? 我在最初的一分钟和半小时后得到相同的数据。

我的RAM是2 GB,我正在使用单线程的应用程序。

线程只是每隔3秒尝试从队列中读取消息,队列为空。

由于没有进行任何处理,我认为页面错误根本不会发生。 请指导我。

2 个答案:

答案 0 :(得分:1)

启动JVM时,它会将最大堆大小保留为连续块。但是,当您访问这些页面时,此虚拟内存仅会转换为主内存。即每次堆增长4 KB时,就会出现一页错误。您也将以相同的方式从线程堆栈中获取页面错误。

您的35K页面错误表明您正在使用大约140 MB的堆。

BTW您可以以25英镑的价格购买8 GB。您可以考虑升级。

答案 1 :(得分:0)

你的JVM是什么?如果是HotSpot,您可以使用-XX:LargePageSizeInBytes或-XX:+ UseMPSS等JVM选项来强制所需的页面大小,以便最大限度地减少页面交换。我认为其他JVM也应该有类似的选择。

看看这个: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html