EntityLite es el ORM más rápido de todos

Frans Bouma, el creador del ORM LlBlGen, escribió en diciembre un blog post donde comparaba el rendimiento de carga de varios ORM’s (http://weblogs.asp.net/fbouma/archive/2013/12/09/fetch-performance-of-various-net-orm-data-access-frameworks.aspx). Naturalmente Frans Bouma no incluyó EntityLite, un micro ORM creado por mi, ya que hace muy poco que está disponible en NuGet y aún está en beta.

Al darme cuenta de que el código fuente del bench mark estaba disponible (https://github.com/FransBouma/RawDataAccessBencher), me decidí a incluir el EntityLite también en las pruebas haciendo un fork del repositorio (https://github.com/jesuslpm/RawDataAccessBencher).

Cual fue mi sorpresa al descubrir que EntityLite es de los más rápidos. Ciertamente el benchmark no siempre da los mismos resultados y no siempre EntityLite queda el primero, pero muchas veces así es. Aquí tenermos algunos de los resultados.

Non-change tracking fetches, set fetches (10 runs), no caching
------------------------------------------------------------------------------
Handcoded materializer using DbDataReader       : 185,50ms.	Enumeration average: 1,13ms
PetaPoco Fast v4.0.3                            : 230,50ms.	Enumeration average: 1,38ms
EntityLite 1.0.10-Beta                          : 233,50ms.	Enumeration average: 1,00ms
Entity Framework v6.0.0.0 (v6.0.21211.0)        : 244,13ms.	Enumeration average: 1,13ms
PetaPoco v4.0.3                                 : 267,38ms.	Enumeration average: 2,00ms
Linq to Sql v4.0.0.0 (v4.0.30319.18408)         : 276,00ms.	Enumeration average: 1,13ms
Dapper                                          : 314,50ms.	Enumeration average: 2,50ms
ServiceStack OrmLite v4.0.5.0 (v4.0.5.0)        : 425,00ms.	Enumeration average: 2,00ms
LLBLGen Pro v4.1.0.0 (v4.1.13.1213), typed view : 516,25ms.	Enumeration average: 5,63ms
Oak.DynamicDb using dynamic Dto class           : 934,63ms.	Enumeration average: 226,50ms

 

Non-change tracking individual fetches (100 elements, 10 runs), no caching
------------------------------------------------------------------------------
PetaPoco Fast v4.0.3                            : 1,55ms per individual fetch
Handcoded materializer using DbDataReader       : 1,59ms per individual fetch
EntityLite 1.0.10-Beta                          : 1,59ms per individual fetch
Dapper                                          : 1,75ms per individual fetch
ServiceStack OrmLite v4.0.5.0 (v4.0.5.0)        : 1,87ms per individual fetch
Oak.DynamicDb using dynamic Dto class           : 1,91ms per individual fetch
LLBLGen Pro v4.1.0.0 (v4.1.13.1213), typed view : 2,23ms per individual fetch
Entity Framework v6.0.0.0 (v6.0.21211.0)        : 3,00ms per individual fetch
Linq to Sql v4.0.0.0 (v4.0.30319.18408)         : 4,77ms per individual fetch
PetaPoco v4.0.3                                 : 9,91ms per individual fetch

EntityLite está en NuGet: (https://www.nuget.org/packages/EntityLite/1.0.10-Beta)

El código fuente en GitHub: (https://github.com/jesuslpm/EntityLite)

La documentación de EntityLite está confeccionándose, estoy escribiendo un artículo para CodeProject, aquí está lo que llevo escrito hasta el momento (https://github.com/jesuslpm/EntityLite/tree/master/CodeProject)

 

Un comentario sobre “EntityLite es el ORM más rápido de todos”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *