当我使用下面的代码时,我遇到了内存泄漏。每次运行代码时,应用程序的内存消耗都会增加。有没有人知道我用这个代码做什么导致它在调用控制器方法时不断增加内存消耗?
BufferedImage originalImage = ImageIO.read(new File(pageService.getBaseLocation() + File.separator + page.getSha1()));
if(originalImage != null){
int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
int width = new Double(originalImage.getWidth() * (300.0/originalImage.getHeight())).intValue();
BufferedImage resizedImage = new BufferedImage(width,300, type);
Graphics2D g = resizedImage.createGraphics();
g.setComposite(AlphaComposite.Src);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(originalImage, 0, 0, width, 300, null);
g.dispose();
ImageIO.write(resizedImage,"png",response.getOutputStream());
response.flushBuffer();
response.getOutputStream().close();
}
答案 0 :(得分:0)
好的,所以使用任务管理器是一种愚蠢的方式来真正检查这一点。使用springinsight,我看到我的内存消耗没有上升。抱歉,麻烦。