2013-09-27 3 views
0

У меня есть приложение, которое считывает сообщения журнала из syslog, анализирует его и разбивает на 4 поля: «отметка времени», «объект», «серьезность» и «сообщение».Как обновлять JTable постоянно, не исчерпывая память?

Я отображаю все эти данные в JTable (с 4 колонками). Я также записываю эти данные в xml-файлы.

Проблема заключается в том, что текущий DefaultTableModel исчерпывает память, когда мы продолжаем добавлять строки (при каждом поступлении новых сообщений журнала). Так же есть ли какая-либо другая модель таблицы, которая может соответствовать моему варианту использования. (То есть JTable должен отображать все сообщения журнала пользователю без нехватки памяти).

Если я вообще пытаюсь реализовать свою собственную модель пользовательской таблицы для обновления из файлов xml, когда модель достигает определенного предела, что я должен помнить (т.е. проблемы, идеи) при разработке такой модели ,

Примечание: Я не могу использовать базу данных

Спасибо.

+0

Вопрос в том, сколько вам нужно хранить в памяти? Можно ли обрезать старые сообщения? Я бы также серьезно подумал над тем, чтобы использовать что-то вроде единой системы пользовательских баз данных, например [H2] (http://www.h2database.com/html/main.html) или [HSQLDB] (http://hsqldb.org/) - IMHO – MadProgrammer

+0

Фактически, поскольку его регистратор мне нужно, чтобы все сообщения журнала отображались пользователю. При использовании базы данных потребуется слишком много времени для их реализации (я не знаю много о них). Можете ли вы дать какие-либо уже реализованные примеры, связанные с этим, чтобы я мог ссылаться на него? –

+0

Вы можете исследовать использование диска с поддержкой коллекции, но потребовалось бы, чтобы вы внедрили свою собственную коллекцию дисков TableModel – MadProgrammer

ответ

1

Несколько возможностей:

  • Profile приложения для выявления возможного паразитного выделения объекта или удержаний, как показано here.

  • Изменить распределение кучи виртуальной машины, как показано на рисунке here.

  • Исследуйте схему подкачки на основе диска, подходящую для вашего прецедента.

Смежные вопросы