使用后是否应该重置Java堆空间的最大值?

Eleventhend

我正在使用R中的一些建模算法,其中一种是在Java(bartMachine)中运行的我发现随着数据的大小,我需要在运行建模算法之前增加java的最大堆空间。

我这样做是这样的:

options(java.parameters = "-Xmx16g")

我的问题是,如果没有其他算法将使用Java(或至少有那么多的堆空间),我是否需要在之后重新设置堆空间?还是会根据需要回收分配给Java的内存而不会造成性能损失?

我已经搜索了有关该主题的一些内容,并且了解了如何更改/降低堆空间。我也知道R / Java会进行垃圾回收以从内存中删除旧对象以释放更多空间。

我不了解的是更改堆空间如何影响其他程序可用的内存,以及在这种情况下更改使用后的堆大小是否必要甚至是个好主意。

我已经看过的一些答案/资源:

有没有办法在不使用时降低Java堆?

Java垃圾收集器-什么时候收集?

http://www.bramschoenmakers.nl/zh-CN/node/726

https://cran.r-project.org/web/packages/bartMachine/bartMachine.pdf

哈利

它是实现的定义,并取决于受许多参数影响的实现。垃圾收集器会影响它在使用Oracles JVM 1.7的Mac上,它默认为并行收集器,-XX:+UseParallelGC并且该收集器不会将内存释放回操作系统。我在Mac上尝试了一下,但没有释放任何东西,但使用-XX:+UseG1GC了。您可以使用以下命令查看默认版本:

java -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -version

如果您使用支持内存的JVM和正确的垃圾收集器,则可以使用一些参数来调整内存的释放方式,即

-XX:MinHeapFreeRatio (default is 40)
-XX:MaxHeapFreeRatio (default is 70)

但是它们会碰到很多东西(JVM决定何时释放内存,只是释放大量对象可能不会触发它)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OutOfMemoryError达到堆空间的最大值之前?

来自分类Dev

最大化Java堆空间

来自分类Dev

java int的最大值

来自分类Dev

java int的最大值

来自分类Dev

选择最大值而不使用最大值?

来自分类Dev

使用Java 8获取属性的最大值

来自分类Dev

为什么我不应该为max_connections使用最大值

来自分类Dev

是否应该将相同的最小值和最大值应用于DataFrame的训练和预测?

来自分类Dev

达到最大值后重置Python Pandas cumsum()

来自分类Dev

找出两个数的最大值和最小值,而不使用“是否”?

来自分类Dev

OutOfMemoryError:使用 XSLT 转换的 Java 堆空间

来自分类Dev

Java 8查找最大值

来自分类Dev

在Java中获取最大值sql

来自分类Dev

获取Java字符的最大值

来自分类Dev

计算Java Double(5)的最大值?

来自分类Dev

使用折叠的列表的局部最大值

来自分类Dev

使用if语句确定最大值

来自分类Dev

SQL:使用最大值过滤行

来自分类Dev

使用SIMD优化列式最大值

来自分类Dev

使用保留来跟踪最大值

来自分类Dev

使用OpenMP的数组中的最大值

来自分类Dev

无法使用注释获取最大值

来自分类Dev

使用 subQuery SQL 选择最大值

来自分类Dev

使用半已知键在ArrayList的HashMap中查找最大值和最小值-Java

来自分类Dev

使用半已知键在ArrayList的HashMap中查找最大值和最小值-Java

来自分类Dev

如果超过最大值,如何将IntegerUpDown的值重置为最小值

来自分类Dev

OutOfMemoryError Java堆空间

来自分类Dev

OutOfMemoryError Java堆空间

来自分类Dev

异常 Java 堆空间