
单个接口并发测试为何导致大量老年代对象?
在进行接口并发测试时,堆内存从不到 100MB 暴增至近 1GB,这是一个令人费解的问题。虽然新生代设置了 100MB,但令人疑惑的是,为什么如此多的对象会进入老年代。
即使线程已结束,手动触发垃圾回收(GC)也无法释放内存,原因似乎在于某些对象正在持有大量资源。通过堆转储并将其加载到 IDE(如 IntelliJ IDEA),发现对象持有者为 Tomcat 的 HTTP 响应头,该头文件体积庞大。
解决方案:
经过进一步分析,发现可以缩小 HTTP 响应头的体积。通过调整服务器配置,减小响应头的大小,内存占用得以降低。










