Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 性能调整、检测和页面错误_Java_Performance_Profiling_Page Fault - Fatal编程技术网

Java 性能调整、检测和页面错误

Java 性能调整、检测和页面错误,java,performance,profiling,page-fault,Java,Performance,Profiling,Page Fault,我正在尝试在JAVA上调优我的一个应用程序。 我正在使用JAVA Profiler,并从中获得了一些报告。 我看到应用程序的页面错误数在30000到35000之间。 我如何判断这个数字是过高还是正常? 我在最初的一分钟和半小时后得到了相同的数据 我的RAM是2GB,我使用的是单线程应用程序 线程仅尝试每隔3秒从队列中读取消息,且队列为空 由于没有进行任何处理,我认为根本不应该出现页面错误。 请带我到这里 启动JVM时,它会将最大堆大小保留为一个连续块。但是,只有当您访问这些页面时,这个虚拟内存才

我正在尝试在JAVA上调优我的一个应用程序。 我正在使用JAVA Profiler,并从中获得了一些报告。 我看到应用程序的页面错误数在30000到35000之间。 我如何判断这个数字是过高还是正常? 我在最初的一分钟和半小时后得到了相同的数据

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

线程仅尝试每隔3秒从队列中读取消息,且队列为空

由于没有进行任何处理,我认为根本不应该出现页面错误。
请带我到这里

启动JVM时,它会将最大堆大小保留为一个连续块。但是,只有当您访问这些页面时,这个虚拟内存才会变成主内存。i、 每次堆增加4KB,就会出现一个页面错误。您还将以相同的方式从线程堆栈中获取页面错误

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


顺便说一句,你可以花25英镑买8GB。您可以考虑升级。

< P>当您启动JVM时,它将最大堆大小保留为连续块。但是,只有当您访问这些页面时,这个虚拟内存才会变成主内存。i、 每次堆增加4KB,就会出现一个页面错误。您还将以相同的方式从线程堆栈中获取页面错误

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


顺便说一句,你可以花25英镑买8GB。你可以考虑升级。

你的JVM是什么?如果它是热点,您可以使用JVM选项,如-XX:LargePageSizeInBytes或-XX:+UseMPs来强制所需的页面大小,以最小化页面交换。我认为其他JVM也应该有类似的选择

看看这个:
你的JVM是什么?如果它是热点,您可以使用JVM选项,如-XX:LargePageSizeInBytes或-XX:+UseMPs来强制所需的页面大小,以最小化页面交换。我认为其他JVM也应该有类似的选择

看看这个:

您可以使用类似于
sar
的方法来测试PF的数量,无论您的程序是否在计算机上运行。请参见,您可以使用类似于
sar
的方法来测试在计算机上运行和不运行程序时的PF数。谢谢你的回答。当你说我的堆大小大约是140MB时,你就接近了。我的最大堆内存是250 MB。我需要知道优化页面错误场景的其他替代方案。我需要知道这里可能的优化。RAM可以增加。我同意。除此之外,它是否有助于增加交换内存。如果我增加缓存会有帮助吗?还有其他不需要硬件升级的优化吗?java可以为堆使用大页面(操作系统也必须支持),更少的TLB条目/未命中,更少的页面表内存谢谢回答。当你说我的堆大小大约是140MB时,你就接近了。我的最大堆内存是250 MB。我需要知道优化页面错误场景的其他替代方案。我需要知道这里可能的优化。RAM可以增加。我同意。除此之外,它是否有助于增加交换内存。如果我增加缓存会有帮助吗?还有其他不需要硬件升级的优化吗?java可以为堆使用大页面(操作系统也必须支持),减少TLB条目/未命中,减少页面表上的内存