Java 5 üzerinde bir istemci tarafı Swing uygulaması (grafik yazı tipi tasarımcısı) yazıyorum . Son zamanlarda, bellek kullanımı konusunda muhafazakar olmadığım için hata yapıyorum. Kullanıcı sınırsız sayıda dosya açabilir ve program açılan nesneleri bellekte tutar. Hızlı bir araştırmadan sonra 5.0 Java Sanal Makinesi'nde Ergonomi buldum ve diğerleri Windows makinesinde JVM varsayılan olarak maksimum yığın boyutunu varsayılan olarak söylüyor .java.lang.OutOfMemoryError: Java heap space
64MB
Bu durum göz önüne alındığında, bu kısıtlamayla nasıl başa çıkmalıyım?
Java için komut satırı seçeneğini kullanarak maksimum yığın boyutunu artırabilir , ancak bu kullanılabilir RAM bulmak ve bazı başlatma programı veya komut dosyası yazma gerektirir. Ayrıca, bazı sonlu maksimuma yükselmek nihayetinde sorundan kurtulmaz.
Belleği boşaltmak için (veritabanı kullanarak aynı şeydir) sık sık dosya sistemine nesneleri kalıcı olarak kodumu yeniden yazabilirsiniz. İşe yarayabilir, ama muhtemelen çok fazla iş vardır.
Beni yukarıdaki fikirlerin ayrıntılarına veya yığın boyutunu dinamik olarak genişleten otomatik sanal bellek gibi bazı alternatiflere yönlendirebilirseniz , bu harika olacaktır.