Подтвердить что ты не робот

Производительность ORM: greenDAO быстрее ORMLite?

Я использую ORMLite в своем приложении, и я рассматривал возможность перехода на greenDAO.

Производительность - это огромная часть этого решения, а страница функций greenDAO говорит:

Для того же данного объекта greenDAO вставляет и обновляет объекты поверх В 2 раза быстрее и загружает объекты в 4,5 раза быстрее для загрузки чем ORMLite.
...
(Цифры и диаграммы обновлены 10-23-2011)

Я думал, что создание файла конфигурации ORMLite должен устранить необходимость отражения во время выполнения.

ORMLite changlog предполагает, что тест greenDAO был выполнен после того, как функция файла конфигурации была выпущена, но на странице функций greenDAO явно не указано, если статический файл конфигурации был создан для теста.

4.26: 9/26/2011 (svn r1978)
 * ANDROID: добавлена ​​утилита настройки поля, чтобы избежать проблем с производительностью создания Dao с аннотациями.

С тех пор также были исправлены ошибки ORMLite, например

4.40: 4/16/2012 (svn r2516)
 * ANDROID: исправлена ​​большая ошибка при создании DAO. Внешние поля всегда использовали отражение вместо табличных конфигураций.

Может ли кто-нибудь подтвердить, есть ли еще большая разница в производительности между greenDAO и ORMLite? Спасибо!

4b9b3361

Ответ 1

Мы только что опубликовали проект Github, который мы использовали для сравнения производительности ORMLite и GreenDao с сырым SQLite:
https://github.com/daj/android-orm-benchmark

Проект также позволяет сравнить производительность базы данных в памяти с дисковой памятью.

Результаты заголовка:

GreenDao намного быстрее, чем ORMLite. Это примерно:

  • 3 раза быстрее при записи большого количества объектов.
  • 50% быстрее при чтении всех 10000 записей в одной таблице.
  • От 2X до 3X быстрее при индексированном чтении одной строки (хотя оба они были очень быстрыми).
  • 15X быстрее при выполнении поиска LIKE для 100 записей в таблице записей 10000.

Проект содержит как наивный исходный тест SQLite, так и оптимизированный тест SQLite.

GreenDao vs unoptimized raw SQLite

  • GreenDao на 2 раза быстрее для теста записи.
  • GreenDao на 25% медленнее для теста чтения.

GreenDao против оптимизированного исходного SQLite

  • GreenDao на 50% медленнее для тестов чтения и записи.

Подробные результаты см. в репозитории Github выше.

Конечно, у нас могут быть ошибки в нашем бенчмаркинге... если вы найдете какую-нибудь вилку, исправьте и отправьте запрос на вытягивание!: -)

Отказ от ответственности: убедитесь, что вы проводите собственное исследование, прежде чем выбирать GreenDao над ORMLite.