ORMPerformanceTest
Операционная система: Mac OS X 10.10 Виртуальная машина: Genymotion Version 2.3.1 Версия Android-эмулятора: 4.2.2 API17 vs 2.3.7 API10 SQLite версия: 3.7.11 2012-03-20 11:35:50 vs 3.6.22 Реальное устройство: Смартфон Xiaomi 3, Android 4.4.4, SQLite версии 3.7.11 Смартфон HTC MyTouch 4G (Glacier), Android 2.3.7, SQLite версии 3.7.2
Все результаты экспериментов представляют собой средние значения, полученные после 10 измерений.
В эксперименте с одиночной вставкой (обновлением) (one-by-one insert/update) было использовано менее 100 записей (для экономии времени). В реальных проектах для массовой вставки данных обычно используются транзакции, поэтому одиночная вставка большого количества данных не имеет практического смысла.
Результаты эксперимента показывают различия между ORMLite и ORMLite2:
- ORMLite использует аннотации (Annotation)
- ORMLite2 использует файлы конфигурации в каталоге res/raw/
Автор AFinal был проинформирован о том, что FinalDB не поддерживает транзакции. Результаты экспериментов с массовой вставкой были получены после незначительных изменений в исходном коде AFinal, которые позволили включить транзакции.
Во время работы с GreenDAO на эмуляторе Android 2.3.7 возникла ошибка OOM после 10 000 операций. Причина ошибки неизвестна. Экспериментальные данные представляют собой среднее значение, полученное после 10 ручных запусков. На эмуляторе Android4.2.2 ошибка OOM не возникала.
При использовании собственных API баз данных Android для массовых вставок существует параметр «привязка параметров», который значительно сокращает время вставки и обновления. Однако API Level ниже 11 не позволяет использовать API обновления (только вставки).
Использование собственных API баз данных Android для одиночных вставок/обновлений (one-by-one insert/update) не даёт преимущества при использовании привязки параметров по сравнению с её отсутствием. Поэтому в результатах экспериментов нет строки «привязка параметров» для одиночных операций вставки/обновления.
Для операций выбора данных в собственных API баз данных Android привязка параметров не применяется. Поэтому строка «привязка параметров» отсутствует в разделе «нагрузка» тестовых данных.
Чтобы обеспечить согласованность условий эксперимента, не использовались флаги состояния.
- ORMLite и ORMLite2 требуют ручного изменения кода.
- Собственные API и собственные API с привязкой параметров также требуют ручного изменения кода
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )