Cześć, pracuję nad małą aplikacją użytkową, trzy-cztery okna, tray oraz kilka krótkich funkcji.
Właśnie skończyłem fazę projektowania okien i zainteresowało mnie zjadanie pamięci. Program zawsze uruchamia się w trayu.

Tuż po uruchomieniu, nic nie klikane:
user image

PPM na tray, PopMenu i otworzenie okna z jego poziomu:
user image

Otworzenie drugiego okna z poziomu pierwszego:
user image

Myślę sobie: OK, nie jest tak źle. Zamykam więc okna i wracam do traya.
user image

Powtarzam powyższe operacje:
user image

I zamykamy do traya:
user image

Korzystam z WindowBuildera do Eclipse, aby projektować okna.
Tak wygląda pusty jFrame:

public class Window {
	public JFrame frame;

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				Window window = new Window();
				window.frame.setVisible(true);
			}
		});
	}

	public Window() {
		initialize();
	}

	private void initialize() { 
		frame = new JFrame();
		frame.setBounds(100, 100, 250, 350);
		frame.setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE); //tak zamykam każde okno
 }

Okna otwieram przez

frame.setVisible(true)

Wracając do sedna: czy Java jest rzeczywiście taka ciężka czy tylko mam złudzenia? (ewentualnie piszę niepoprawny kod)
Dwa okna, kilka jpaneli i to wszystko. Niby 50MB pamięci to nie dużo w dzisiejszych czasach, ale jednak na tak małą aplikacje (nic kodu ponad Popupmenu, zero niczego, nawet ikonki w trayu nie mam ustawionej), to jest już coś.