首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java堆的大小按部分增长,达到一定的限制

java堆的大小按部分增长,达到一定的限制
EN

Stack Overflow用户
提问于 2013-04-21 23:10:02
回答 1查看 571关注 0票数 0

我正在用Java编写一个简单的服务器应用程序,现在我正在使用Apache编写一些基准测试。

启动后,服务器使用的驻留内存大约为40M。我制作了一系列的1000个请求(100个并发请求)。在每个系列之后,我再次检查内存的使用情况。结果对我来说很奇怪。

在基准测试的第一次运行中,99%的请求是在≈20 msecs中处理的,其余的1%是在大约300个msecs (!)中处理的。同时,内存的使用也在增加。在运行5-7之后,这个增长停止在1.2亿米,请求开始运行得更快--每个请求大约10毫秒。而且,当我增加请求的数量时,你的时间和我的价值保持不变。

为什么会发生这种事?如果有内存泄漏,那么我的服务器将需要越来越多的资源。我只能说,这是因为一些自适应JVM内存分配机制提前增加了堆大小。

EN

回答 1

Stack Overflow用户

发布于 2013-04-21 23:21:48

堆从Xms开始,并根据需要增长到指定的极限Xmx

JVM需要一段时间来“警告”--各种优化都发生在运行时,这是正常的。

如果记忆上升到某个点,然后停止爬升,你就没事了。

如果内存无限期地攀升,并且程序最终抛出一个OutOfMemoryError,那么您就有了一个问题。

从您的描述来看,前者似乎是真的,因此没有内存泄漏。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16137193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档