Я разработал инструмент Eclipe RCP, который использует SQLite для хранения большого количества кортежей. Теперь я хотел увидеть разницу в использовании ОЗУ при использовании базы данных SQLite в памяти по сравнению с базой данных на основе файлов. Поэтому я использовал JVisualVM и отслеживал используемое пространство кучи Java с помощью инструмента Trace. В тех же условиях я запустил свой инструмент один раз с версией в памяти и один раз с версией на основе файлов.
Для имитации бенчмарка таблицы в общей сложности содержали более 30 миллионов кортежей, в каждом из которых в среднем по 15 элементов.
Я ожидал, что версия в памяти использует гораздо больше места в куче Java, чем версия на основе файлов. Но оба следа выглядят почти одинаково без заметной разницы. Оба пространства кучи Java имели одинаковый максимум, и они никогда не достигали этого максимума.
Поэтому мой вопрос: использует ли SQLite пространство кучи Java для базы данных в памяти или она находится в другой части памяти, которую JVisualVM не может отслеживать?
К сожалению, я не смог найти ничего об этом в Интернете. Просто в памяти, а не где в памяти.
Спасибо!!