sugar studio que library devopenhelper android performance sqlite ormlite greendao

android - studio - que es sugar orm



Rendimiento de ORM: ¿es greenDAO más rápido que ORMLite? (1)

He estado usando ORMLite en mi aplicación y estaba considerando cambiarme a greenDAO.

El rendimiento es una gran parte de esa decisión, y la página de características de greenDAO dice:

Para la misma entidad, greenDAO inserta y actualiza entidades más de 2 veces más rápido, y carga entidades 4.5 veces más rápido para cargar entidades que ORMLite.
...
(Figuras y tabla actualizadas el 10-23-2011)

Pensé que el paso de generación de archivos de configuración de ORMLite debería eliminar la necesidad de reflexión en el tiempo de ejecución.

El changlog de changlog sugiere que el punto de referencia greenDAO se realizó después de que se publicó la característica de archivo de configuración, pero la página de características greenDAO no dice explícitamente si se generó un archivo de configuración estática para la prueba.

4.26: 26/09/2011 (svn r1978)
* ANDROID: utilidad de configuración de campo agregada para evitar problemas de rendimiento de creación de Dao con anotaciones.

También ha habido arreglos de rendimiento ORMLite desde entonces, por ejemplo

4.40: 16/04/2012 (svn r2516)
* ANDROID: corrección de errores de gran rendimiento al crear DAO. Los campos foráneos siempre usaban la reflexión en lugar de las configuraciones de tabla.

¿Alguien puede confirmar si todavía hay una gran diferencia de rendimiento entre greenDAO y ORMLite? ¡Gracias!


Acabamos de publicar un proyecto de Github que utilizamos para comparar el rendimiento de ORMLite y GreenDao con el SQLite en bruto:
https://github.com/daj/android-orm-benchmark

El proyecto también le permite comparar el rendimiento de una base de datos en memoria con una en disco.

Los resultados principales son:

GreenDao es mucho más rápido que ORMLite . Es aproximadamente:

  • 3 veces más rápido al escribir grandes cantidades de objetos.
  • 50% más rápido al leer en todas las 10000 entradas en una sola tabla.
  • 2X a 3X más rápido en una lectura indexada de una sola fila (aunque ambos fueron muy rápidos).
  • 15 veces más rápido al hacer una búsqueda LIKE para 100 registros en una tabla de entrada de 10000.

El proyecto contiene tanto un punto de referencia de SQLite crudo ingenuo como un punto de referencia de SQLite optimizado .

GreenDao vs SQLite raw optimizado

  • GreenDao es 2 veces más rápido para el punto de referencia de escritura.
  • GreenDao es un 25% más lento para el punto de referencia de lectura.

GreenDao vs SQLite sin procesar optimizado

  • GreenDao es un 50% más lento para los puntos de referencia de lectura y escritura.

Para obtener resultados detallados, consulte el repositorio de Github que aparece arriba.

Por supuesto, es posible que tengamos errores en nuestro código de evaluación comparativa ... si encuentra algún fork, ¡arregle y envíe una solicitud de extracción! :-)

Descargo de responsabilidad: asegúrese de hacer su propia investigación antes de elegir GreenDao en lugar de ORMLite.