1. Run as ->Run configurations ->java应用名 ->arguments ->VM arguments,加入jvm参数就行
2. 测试代码
[java] view plain copy
package cn.erong.test
public class Jtest {
private static final int _1M = 1024*1024
public static void main(String[] args) {
byte[] allocation1,allocation2,allocation3,allocation4
allocation1 = new byte[_1M/4]
allocation2 = new byte[_1M/4]
allocation3 = new byte[4*_1M]
allocation4 = new byte[4*_1M]
allocation4 = null
allocation4 = new byte[4*_1M]
}
}
3. 测试看下,在vm arguments 中加入
[java] view plain copy
-Xms20m --jvm堆的最小值
-Xmx20m --jvm堆的最大值
-XX:+PrintGCTimeStamps -- 打印出GC的时间信息
-XX:+PrintGCDetails --打印出GC的详细信息
-verbose:gc --开启gc日志
-Xloggc:d:/gc.log -- gc日志的存放位置
-XX:SurvivorRatio=8 --新生代内存区域中Eden和Survivor的比例
4 . run 看下日志,到d盘找到 gc.log,如下
[plain] view plain copy
Java HotSpot(TM) Client VM (25.151-b12) for windows-x86 JRE (1.8.0_151-b12), built on Sep 5 2017 19:31:49 by "java_re" with MS VC++ 10.0 (VS2010)
Memory: 4k page, physical 3567372k(982296k free), swap 7133056k(3042564k free)
CommandLine flags: -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:MaxNewSize=10485760 -XX:NewSize=10485760 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:SurvivorRatio=8 -XX:-UseLargePagesIndividualAllocation
0.091: [GC (Allocation Failure) 0.091: [DefNew: 5427K->995K(9216K), 0.0036445 secs] 5427K->5091K(19456K), 0.0038098 secs] [Times: user=0.00 sys=0.02, real=0.00 secs]
0.095: [GC (Allocation Failure) 0.095: [DefNew: 5091K->0K(9216K), 0.0012412 secs] 9187K->5090K(19456K), 0.0012908 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
Heap
def new generation total 9216K, used 4260K [0x04000000, 0x04a00000, 0x04a00000)
eden space 8192K, 52% used [0x04000000, 0x044290e8, 0x04800000)
from space 1024K, 0% used [0x04800000, 0x04800000, 0x04900000)
to space 1024K, 0% used [0x04900000, 0x04900000, 0x04a00000)
tenured generation total 10240K, used 5090K [0x04a00000, 0x05400000, 0x05400000)
the space 10240K, 49% used [0x04a00000, 0x04ef8ac0, 0x04ef8c00, 0x05400000)
Metaspace used 84K, capacity 2242K, committed 2368K, reserved 4480K
运行Eclipse很慢是因为配置不合理。快速开启Eclipse配置 *** 作步骤:
首先,应当将下列的文件添加到 eclipse.ini配置文件里:
-Xloggc:gc.log
这是显示Eclipse在启动的时候所做的事情。
接下来,就可以开始进行一些优化。这里举个例子,本机内存环境是3.16G。
第一次优化
设置-Xms (初始化堆大小)和-Xmx(JVM最大堆大小)为512M,以避免无用单元的重复收集(GC),下面就是配置:
-Xms512m
-Xmx512m
-verbose:gc
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:gc.log
现在重新启动 Eclipse,会发现监控了8次完整的GC和3次超时的GC。从日志中可以看到引发完整GC的原因是 Perm,可以继续做一些优化:
可以设置 Perm尺寸的初始值和最大值为512M:
-Xms512m
-Xmx512m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-verbose:gc
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:gc.log
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)