Оптимизация хранения задач в Room при больших объёмах данных
Авторы: М.В. Золотовский
Источник: Сборник материалов V Международной конференции молодых учёных «Young scientists researches and achievements in science», 2025.
Аннотация
Исследованы подходы к работе с локальной базой данных при 5000+ задачах: пагинация через Paging 3, индексация, оптимизация запросов. Приведены замеры производительности и потребления памяти. Разработаны стратегии миграции схемы и backup/restore через Google Drive API.
Ключевые слова
Room, Paging 3, Flow, SQLite, производительность, Android
Введение
Современные таск-менеджеры часто работают с тысячами задач. Приложение должно оставаться отзывчивым даже при большом объёме данных. Библиотека Room предоставляет мощные инструменты, но без правильной настройки приводит к задержкам и утечкам памяти.
Проблемы и решения
Без пагинации список из 5000 задач загружается за 2,3 секунды. С Paging 3 + Flow время сокращается до 47 мс. Использование индексов на поля priority, due_date и status ускорило сортировку в 6 раз.
Результаты тестирования
Тесты на Pixel 8 (Android 14):
• Время первой загрузки: 47 мс (было 2300 мс)
• Память: 38 МБ (было 112 МБ)
• CPU при прокрутке: < 5 % (было 28 %)
Заключение
Правильная настройка Room с Paging 3 и Flow позволяет создавать высокопроизводительные офлайн-приложения даже при больших объёмах данных.
