Java Hour 64 JVM 最大内存设置

从这篇博文起,不再是流水式的学习记录了,稍微改进下风格。

运行时获得当前JVM 设置大小

首先,-Xmx100000000指定最大的内存分配。

public static void main(String[] args) {

       Runtime run = Runtime.getRuntime();



       long max = run.maxMemory();

       long total = run.totalMemory();

       long free = run.freeMemory();



       System.out.println(max);

       System.out.println(total);

       System.out.println(free);

   }

结果:

97320960

16252928

15536696

看到基本是100M的样子。

-Xms 设置JVM 初始化最小值

97320960

96731136

95661464

我们可以看到初始值基本马上就分配了大概100M 的样子。

服务器端上建议-Xms 和-Xmx 设为同样的大小,这样就不用老是伸缩大小了。

GC 的分代模型

在JVM 的章节中我们介绍了GC 的分代回收的策略。

这里的某个JVM 实现划分为 young, old, permanet.

young 代

据说这一代的对象采用的复制收集算法。

old 代

young 代活过几轮就可以进入到old 代。

具体熬过几代可以进入到这里,是有参数可以设置的。

这里的对象采用标记清理算法。

permanet 代

这里的一般不GC, 里面是一些Class 信息。

Note:

因为没有遇到过实际的问题,希望将来能够有碰到类似的问题并尝试解决的机会。

-Xss

-Xmn

你可能感兴趣的:(java)