【发布时间】:2012-07-03 10:00:16
【问题描述】:
我在使用 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。
提前致谢。
【问题讨论】:
-
是的,
JTextArea也有很多功能;有些你可能不需要。您的实际要求是什么? -
我主要想从我的 c++ 程序中显示我的标准输出(和标准错误)。我只是不明白所有的记忆都去哪儿了。
标签: java swing document jtextarea