我在休息输入中获取多部分文件并验证文件的某些属性,之后我使用 file.getResource() 将多部分文件上传到不同的服务
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
**body.add("model", file.getResource());**
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
}
这样做时我需要将整个文件传递给下游系统, JVM 内存正在急剧增加,并且在很长一段时间内都没有释放空间,同时多个此类操作正在占用整个堆空间。
我可以使用 java 的命令行选项增加最大堆大小,但这似乎不是一个可行的解决方案。
我通过 JProfiler 注意到它在堆内存中占用了大量空间,主要问题是它在执行该 api 后没有释放空间。
我也在分享 JProfiler 的截图。您可以看到图表没有下降,因为它没有清空空间。 ()
我正在寻找一种解决方案,我可以将文件输入并上传到下游应用程序,同时利用非常小的堆空间。
提前致谢。