ORMLite плохая производительность на Android? - PullRequest
1 голос
/ 26 августа 2011

Я разрабатываю приложение для Android и пытался использовать ORMLite, но производительность кажется очень низкой. Кто-нибудь еще испытывал это?

Или я что-то не так делаю?

EDIT

Нет, я не делаю никаких объединений, и все запросы выполняются с индексированными ключами в качестве параметров. Но набор данных достаточно большой, и сравнений довольно много.

Не пробовал делать с чистым SQLite ...

1 Ответ

11 голосов
/ 30 августа 2011

Полагаю, лучшим ответом будет то, что производительность ORMLite сильно зависит от того, как вы его используете. Если бы вы могли опубликовать некоторые примеры кода, а также некоторые показатели производительности, мы могли бы помочь вам более конкретно.

Если вы выполняете несколько операций с базами данных одновременно, вам следует рассмотреть возможность использования метода Dao.callBatchTasks(). Под Android он запускает транзакцию базы данных, вызывает переданную команду Callable и после возврата фиксирует транзакцию. Это значительно быстрее, если, например, вы вставляете несколько строк в таблицу.

См. Также: Почему метод DAO в ORMLite такой медленный?

EDIT

Если ваши запросы занимают некоторое время, то, скорее всего, время тратится на SQLite. Вы можете попробовать уменьшить часть набора данных или настроить число сравнений, чтобы увидеть, работают ли вещи быстрее, поэтому вы можете окончательно определить, что SQLite (и, скорее всего, просто IO) является виновником.

...