У меня проблема с памятью с Java и Swing. У меня есть JTextArea
(эта же проблема с JTextPane
), которую я использую для перенаправления stdout из исполняемого файла 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>
}
Приведенный выше код потребляет 100 МБ. С тегом tag_memory прокомментировано, намного меньше (30 МБ со всем моим другим кодом & UI). Как уменьшить использование памяти Java? В настоящее время с использованием обновления Java 7 4.
Заранее спасибо.
Да, у JTextArea есть множество функций; некоторые из вас могут не понадобиться. Каковы ваши фактические требования? – trashgod
Я в основном хочу показать мой stdout (и stderr) из моей программы на C++. Я просто не понимаю, куда идет вся память. – jobobo