我创建了一个简单服务,它执行4 HTTP调用和4 db调用,以收集一些数据并将其作为JSON传递给HTTP响应。
当我启动应用程序(本机,没有停靠器)时,我看到它会消耗7MB,有时还会消耗15MB (有时是30 it )。好的。
当我开始加载测试时,每10毫秒发送一次请求,总共100请求。
我注意到200 to的马上就会消耗内存。然后再对400 to的进行5-6次测试。(与Spring版本一样)。
的问题是:预期会是这样吗?
它是否应该尝试对内存进行极简主义(对于它的本机v),并在它本身之后,至少在n分钟左右之后进行清理?有设置吗?
发布于 2019-11-30 07:39:30
我不是GraalVM本地图像方面的专家,但是通过一个快速的本地测试,通过一个"Hello“应用程序,我看到了与您相似的数字。似乎,如果您不设置最大堆大小的限制,其中一个将自动选择(不确定的标准)。您可以使用-XX:+PrintGC启动应用程序以查看内存活动。然后,您可以尝试使用-Xmx (例如,-Xmx32m将最大堆大小设置为32 MB) --给应用程序的内存越多,垃圾收集周期就越少。本文展示了一些更有趣的GC选项:https://e.printstacktrace.blog/graalvm-heap-size-of-native-image-how-to-set-it/
https://stackoverflow.com/questions/59109988
复制相似问题