私が作成したすべての Swing アプリケーションが、新しいオブジェクトを継続的に割り当てているように見えることに気付きました。
この小さなアプリケーションを考えてみましょう:
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
@SuppressWarnings({ "javadoc", "serial" })
public class SwingTest extends JFrame {
public static void main(String[] args) {
new SwingTest().setVisible(true);
}
public SwingTest() {
setTitle("SwingTest");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 400));
setContentPane(panel);
pack();
}
}
多くのメモリを消費するとは思いませんが、VisualVM のヒープ グラフを見ると、メモリ使用量が絶えず増加してからリセットされていることがわかります。これは何が原因ですか?