我在使用 Java 和 Swing 时遇到了一些内存问题。我有一个JTextArea
(与 相同的问题JTextPane
)用于从 C++ 可执行文件重定向标准输出。而且因为我输出了很多标准输出,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 行,少了很多(30MB 加上我所有的其他代码和 UI)。如何减少 Java 的内存使用量?当前使用 Java 7 更新 4。
提前致谢。