JTextArea中消耗了大量的内存(JTextArea consumes a lot of mem

2019-09-19 00:31发布

我有与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行注释掉,少了很多(30MB用我所有的其他代码和UI)。 如何减少Java的内存使用情况? 目前使用的Java 7更新4。

提前致谢。

Answer 1:

我只是不明白,所有的记忆是怎么回事。

PlainDocument讲述的故事:一个或每个码点两个16位代码单元,图线的开始,所有的辎需要使其可编辑。 对于只读查看,我会使用重定向: yourprogram 2>&1 > view 。 在Java中,你可以从中读取stdin到一个List<String> ,有一个String每行,并用它查看JTable 。 默认渲染器是相当有效的。 有一个相关的例子在这里 。



文章来源: JTextArea consumes a lot of memory