如何测试Java groovy内存回收

介绍

这篇文章主要为大家展示了如何测试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

在进行测试发现:

如何测试Java groovy内存回收

在进行压测的时候,装入的类会增加,但是当元数据数据到达256米的时候,jvm会进行有规律的回收,访问这个url性能也没有变差。

得出的结论是:

1。使用groovy确实会导致临时装载类增加。

2。我们需要设置元数据的数据,当元数据到达这个数值时就回收,这样不至于占用太多的堆内存,导致系统性能下降。

以上就是关于如何测试Java groovy内存回收的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看的到。

如何测试Java groovy内存回收