首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.OutOfMemoryError:当我试图创建一个BufferedImage时,Java堆空间

java.lang.OutOfMemoryError:当我试图创建一个BufferedImage时,Java堆空间
EN

Stack Overflow用户
提问于 2014-09-01 10:46:57
回答 1查看 974关注 0票数 1

我在尝试创建一个BufferedImage时遇到了问题。我只是在我租来的服务器上遇到了这个问题,而不是在我的开发环境(我的计算机)上。

我有一张表格要上传图片。上传图像后,我将其保存到文件系统中。我立即保存它,因为根据你们中的一些人所说的,我可以从服务器内存中“释放”资源,因为我使用文件系统上的图像而不是对象Part来调整图像大小、控制等等。

一旦我试图创建一个BufferedImage,从一个大于2-3 mb的图像,我就会得到这个错误。

在执行这一行时,我的应用程序停止工作,我得到了那个错误

代码语言:javascript
复制
BufferedImage immagineTemporaneaBufferizzata = ImageIO.read(new File...);

我使用了互联网上的一种方法来检查服务器上的内存。这是我在遇到错误之前得到的:

使用内存:26空闲内存:30总内存:57最大内存:57

我应该增加堆内存吗?我试图在catalina.bat和catalina.sh上都这样做,但是我没有看到我的Max Memory中有什么变化。可能我做错了什么。在linux上增加堆大小的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-01 10:53:21

坦率地说,对于处理2-3MB图像的应用程序来说,最大内存57 MB非常低。是的,如果可以的话,你一定要增加记忆。

澄清:图像大小2-3 MB.这是什么2-3 MB?压缩图像的大小?如果它是一个2-3MB的JPG,那可能是一个很大的图像(取决于质量)。例如,它甚至可能是3200x2000像素的图像,即640万像素;如果使用3字节的RGB像素模型,则内存中二进制数据的~20 MB

关于增加tomcat内存,请参见以下问题:

Dealing with "java.lang.OutOfMemoryError: PermGen space" error

Increase Tomcat memory settings

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

https://stackoverflow.com/questions/25604094

复制
相关文章

相似问题

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