我在Java和Swing中遇到了一些內存問題。我有一個JTextArea
(與JTextPane
相同的問題),我用它來從C++可執行文件重定向stdout。而且因爲我輸出了很多標準輸出,所以JTextPane
消耗了很多空間。無論如何,我把它歸結爲下面的代碼,全部用Java編寫。JTextArea消耗大量內存
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與我所有的其他代碼&用戶界面)。我如何減少Java的內存使用量?目前正在使用Java 7更新4.
在此先感謝。
是的,'JTextArea'也有很多功能;有些你可能不需要。你的實際要求是什麼? – trashgod
我主要想從我的C++程序中顯示我的stdout(和stderr)。我只是不明白所有的記憶在哪裏。 – jobobo