ORMLite плохая производительность на Android?
Я разрабатываю приложение для Android и пытался использовать ORMLite, но производительность, похоже, очень низкая. Кто-нибудь еще испытывал это?
Или я что-то не так делаю?
РЕДАКТИРОВАТЬ
Нет, я не делаю никаких соединений, и все запросы выполняются с индексированными ключами в качестве параметров. Но набор данных достаточно большой, и сравнений достаточно много.
Не пробовал делать с чистым SQLite...
1 ответ
Полагаю, лучший ответ заключается в том, что производительность ORMLite сильно зависит от того, как вы его используете. Если бы вы могли опубликовать некоторые примеры кода, а также некоторые показатели производительности, мы могли бы помочь более конкретно.
Если вы выполняете несколько операций с базой данных одновременно, вам следует рассмотреть возможность использования Dao.callBatchTasks()
метод. Под Android он запускает транзакцию базы данных, вызывает переданные в Callable
и после того, как он возвращается, он совершает транзакцию. Это значительно быстрее, если вы, например, вставляете несколько строк в таблицу.
Смотрите также: Почему метод DAO такой медленный в ORMLite?
РЕДАКТИРОВАТЬ
Если ваши запросы занимают некоторое время, то, скорее всего, время тратится на SQLite. Вы можете попробовать уменьшить часть набора данных или настроить количество сравнений, чтобы увидеть, работают ли вещи быстрее, поэтому вы можете окончательно определить, что SQLite (и, скорее всего, просто IO) является виновником.