Java 内存泄漏生成缩略图

Java 内存泄漏生成缩略图,java,spring,spring-mvc,memory-leaks,Java,Spring,Spring Mvc,Memory Leaks,当我使用下面的代码时,我遇到内存泄漏。每次运行代码时,应用程序的内存消耗都会增加。有人知道我在用这段代码做什么吗?每当调用控制器方法时,这段代码会导致内存消耗不断增加 BufferedImage originalImage = ImageIO.read(new File(pageService.getBaseLocation() + File.separator + page.getSha1())); if(originalImage != null){ int type = origi

当我使用下面的代码时,我遇到内存泄漏。每次运行代码时,应用程序的内存消耗都会增加。有人知道我在用这段代码做什么吗?每当调用控制器方法时,这段代码会导致内存消耗不断增加

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();
}                           

好的,所以使用任务管理器是一种愚蠢的方式来真正检查这一点。使用springinsight,我发现我的内存消耗没有增加。很抱歉给您添麻烦。

您如何测量应用程序中使用的内存?它是否也会耗尽内存?您如何知道在GC循环后内存不会被释放?只需从windows使用任务管理器并监视java进程。它在第一次跳转300MB左右,然后在随后的每次运行中使用相同的数据调用该方法时跳转100MB。每次我调用我的控制器方法时,这个代码片段都会被调用大约200次。michal rybak我该如何检查?您可以使用jvisualvm之类的工具,它是免费随jdk打包的。我会一直调用控制器逻辑,看看程序是否内存不足。