我在Java和Swing中遇到了一些内存问题。我有一个JTextArea
(使用JTextPane
时也有同样的问题),用于重定向来自C++可执行文件的标准输出。由于我输出了大量的stdout,JTextPane
占用了很多空间。无论如何,我将其简化为以下所有Java代码。
private javax.swing.JTextArea jtextareastdout;
....
for (int i = 0; i < 200000; i++) {
String randomstr = UUID.randomUUID().toString();
jtextareastdout.setText(randomstr); //<tag_memory>
if (i % 100 == 0)
System.gc(); //<tag_no_help>
}
上面的代码消耗了100MB。 如果注释掉tag_memory行,则会少得多(包括我所有的其他代码和UI,只有30MB)。 我该如何减少Java的内存使用? 目前正在使用Java 7更新4版。
提前致谢。
JTextArea
也有很多功能;其中一些你可能不需要。那么,你的实际需求是什么? - trashgod