java - JTextArea 占用大量内存

标签 java swing document jtextarea

我在使用 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。

提前致谢。

最佳答案

I just don't understand where all the memory is going.

PlainDocument 讲述故事:每个代码点一个或两个 16 位代码单元,一个线图开始以及使其可编辑所需的所有障碍。对于只读查看,我会使用重定向:yourprogram 2>&1 > view .在 Java 中,您可以从 stdin 读取进入List<String> , 和一个 String每行,并使用 JTable 查看它.默认 renderer效率很高。有一个相关的例子 here .

关于java - JTextArea 占用大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302982/

相关文章:

java - Install4j8 对空搜索的处理顺序已更改

java - 这个实现会被称为匿名类吗?

internationalization - LaTeX 中没有挪威语字符

javascript - 如果链接在父元素内,我如何更改父元素的类?

java - 无法将一个 Spring Boot 应用程序导入到另一个 Spring Boot 应用程序中

java - 在JavaFX应用程序上运行Proguard后出现NoClassDefFoundError

java - 从 JTextPane 获取 JLabel 并更改其文本

java - Swing 。用 JList 填充 JScrollPane

java - Swing - 从面板内部调用事件

javascript - 文档.activeElement