简单的Java程序越来越消耗内存

use*_*415 3 java swing memory-consumption memory-efficient

我有这个简单的Java代码,它创建一个JFrame实例并显示它.此链接包含jconsole采用的内存消耗图表的屏幕截图

在此输入图像描述

令我担心的是,任务管理器中的java.exe显示内存使用率以每8-9秒4-5 kbs的速率不断增加.需要帮忙

import javax.swing.*;

class MyGUI extends JFrame
{
    public void makeGUI()
    {
        setLayout(null);
        setSize(500, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
}

public class Launcher
{
    public static void main(String []args)
    {
        SwingUtilities.invokeLater(new Runnable()
                    {
                       public void run()
                       {
                        new MyGUI().makeGUI();
                       }
                    });
    }
}
Run Code Online (Sandbox Code Playgroud)

ass*_*ias 7

该配置文件看起来完全正常 - 程序创建对象,垃圾收集器有时会通过删除不再可访问的对象来释放内存.

重要的观察结果是,低谷点或多或少处于同一水平,因此看起来您的代码没有内存管理问题.

您可以通过将最大堆空间量设置为较低级别来降低峰值的高度,但无论如何,5 MB都不会太大......

  • +1另请参见对比[示例](http://stackoverflow.com/a/6310284/230513). (2认同)