这篇文章主要为大家展示了如何测试Java groovy内存回收,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
<强>问题
强>
在使用我们的开发平台时,客户怀疑我们的动态执行脚本会导致系统内存回收的问题,导致系统不响应,为此我专门针对这个问题,做一下详细的测试,看看是不是到底有什么影响。
<强>测试步骤
强>
1。使用编写一个控制器方法,这个控制器方法只做一个解析Java脚本的代码。
2。配置tomcat的内存。
set JAVA_OPTS=-Xms1g -Xmx1g
3。使用APPACHE的ab命令进行压测。
<代码> ab c5 -t3600 http://192.168.1.200:8080 jsaas/testGroovyEngine。代码>
使用ab命令并发5次,压测1个小时。
这个时候压测,发现元数据的数据会增加,但是到达300多米的时候,这个数据会进行回收,但是这个时候访问会变慢。
重新调整jvm参数
<代码> set JAVA_OPTS=-Xms1g -Xmx1g - xx: MetaspaceSize=256 - xx: MaxMetaspaceSize=256 代码>
将元数据数据的大小固定为256
在进行测试发现:
在进行压测的时候,装入的类会增加,但是当元数据数据到达256米的时候,jvm会进行有规律的回收,访问这个url性能也没有变差。
得出的结论是:
1。使用groovy确实会导致临时装载类增加。
2。我们需要设置元数据的数据,当元数据到达这个数值时就回收,这样不至于占用太多的堆内存,导致系统性能下降。
以上就是关于如何测试Java groovy内存回收的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看的到。