Входной шестнадцатеричный файл может содержать не менее полумиллиона строк данных. Следовательно, графический интерфейс должен отображать их все.
Текущая реализация:
Обратите внимание, что при запуске графического интерфейса нет проблем с производительностью. Только для шестнадцатеричного файла с полмиллионом записей (файл размером 10 МБ) требуется от 2 до 3 секунд.
Но потребление памяти - БОЛЬШАЯ ПРОБЛЕМА. Для шестнадцатеричного файла размером 10 МБ память занимает 250 МБ. Основная проблема заключается в том, что объем памяти не уменьшается, хотя я закрыл загруженный файл на панели с вкладками в графическом интерфейсе.
Я знаю, что String широко используется. Но как лучше всего справиться с этим вариантом использования?
Запросите ваши комментарии по этой проблеме с памятью.
Заранее спасибо.
На основе предоставленной вами информации разбивка на страницы должна быть хорошим подходом для загрузки необходимого количества строк на одной странице за раз. Однако в настоящее время потребление памяти 250 МБ не является проблемой, поскольку любой ПК или ноутбук имеет как минимум 2 или 4 ГБ оперативной памяти.
Проблема невыполнения памяти зависит от вашей реализации, поскольку механизм сборки мусора может освобождать только мертвые ссылки. Возможно, вы определили очень широкую переменную для JTable и его модели.




Загружайте только соответствующие строки за раз, возможно, используя кеш. Здесь может быть полезен файл с отображением памяти, но только для создания строк / строк «по запросу». Некоторые метаданные о строках могут быть полезны для поиска и т. д. (В зависимости от данных / использования): эти метаданные должны быть небольшими по сравнению с полными данными и, возможно, предварительно загружены / вычислены. JTable прекрасно поддерживает разбиение по страницам.