-
Notifications
You must be signed in to change notification settings - Fork 22
RawBencher Performance Unofficial
Grauenwolf edited this page Mar 26, 2016
·
2 revisions
These are unofficial results of running Frans Bouma's RawDataAccessBencher against Chain's normal and compiled materializers. https://github.com/FransBouma/RawDataAccessBencher
Results per framework. Values are given as: 'mean (standard deviation)'
==============================================================================
Non-change tracking fetches, set fetches (25 runs), no caching
------------------------------------------------------------------------------
Handcoded materializer using DbDataReader : 160.50ms (4.88ms) Enum: 1.17ms (0.22ms)
Handcoded materializer using DbDataReader (GetValues(array), boxing) : 166.47ms (2.27ms) Enum: 1.30ms (0.14ms)
Chain v0.7.5927.4601 with Compiled Materializers : 168.82ms (5.02ms) Enum: 1.14ms (0.08ms)
LINQ to DB v1.0.7.3 (v1.0.7.3) (normal) : 173.59ms (4.34ms) Enum: 1.12ms (0.18ms)
Raw DbDataReader materializer using object arrays : 176.37ms (1.40ms) Enum: 3.13ms (0.24ms)
LINQ to DB v1.0.7.3 (v1.0.7.3) (compiled) : 179.14ms (16.55ms) Enum: 1.33ms (0.25ms)
PetaPoco Fast v4.0.3 : 184.00ms (3.39ms) Enum: 1.30ms (0.14ms)
LLBLGen Pro v5.0.0.0 (v5.0.0), Poco typed view with QuerySpec : 192.11ms (8.95ms) Enum: 1.35ms (0.16ms)
LLBLGen Pro v5.0.0.0 (v5.0.0), Poco typed view with Linq : 192.27ms (1.93ms) Enum: 1.12ms (0.07ms)
PetaPoco v4.0.3 : 211.58ms (16.01ms) Enum: 1.18ms (0.10ms)
Dapper v1.40.0.0 : 212.84ms (3.96ms) Enum: 1.33ms (0.19ms)
ServiceStack OrmLite v4.0.50.0 (v4.0.50.0) : 217.17ms (18.20ms) Enum: 1.29ms (0.27ms)
Entity Framework v6.0.0.0 (v6.1.40302.0) : 221.27ms (5.46ms) Enum: 1.22ms (0.14ms)
Linq to Sql v4.0.0.0 (v4.6.1038.0) : 229.89ms (16.24ms) Enum: 1.39ms (0.27ms)
Entity Framework v7.0.0.0 (v7.0.0.11116) : 290.73ms (6.71ms) Enum: 1.36ms (0.14ms)
LLBLGen Pro v5.0.0.0 (v5.0.0), DataTable based TypedView : 368.16ms (26.71ms) Enum: 3.44ms (0.37ms)
Massive using dynamic class : 623.04ms (3.96ms) Enum: 27.23ms (3.31ms)
Oak.DynamicDb using dynamic Dto class : 676.64ms (22.29ms) Enum: 130.33ms (16.46ms)
Change tracking fetches, set fetches (25 runs), no caching
------------------------------------------------------------------------------
DataTable, using DbDataAdapter : 258.45ms (6.48ms) Enum: 34.86ms (1.19ms)
Linq to Sql v4.0.0.0 (v4.6.1038.0) : 294.92ms (11.82ms) Enum: 1.50ms (0.13ms)
LLBLGen Pro v5.0.0.0 (v5.0.0) : 301.34ms (4.68ms) Enum: 8.08ms (0.44ms)
Oak.DynamicDb using typed dynamic class : 675.08ms (20.56ms) Enum: 842.09ms (19.15ms)
NHibernate v4.0.0.4000 (v4.0.4.4000) : 2,556.60ms (65.43ms) Enum: 1.84ms (0.37ms)
Entity Framework v6.0.0.0 (v6.1.40302.0) : 2,733.29ms (46.59ms) Enum: 1.95ms (0.32ms)
Entity Framework v7.0.0.0 (v7.0.0.11116) : 3,426.80ms (113.47ms) Enum: 1.77ms (0.15ms)
Non-change tracking individual fetches (100 elements, 25 runs), no caching
------------------------------------------------------------------------------
Handcoded materializer using DbDataReader (GetValues(array), boxing) : 0.19ms (0.01ms) per individual fetch
Handcoded materializer using DbDataReader : 0.19ms (0.01ms) per individual fetch
Chain v0.7.5927.4601 with Compiled Materializers : 0.21ms (0.01ms) per individual fetch
Dapper v1.40.0.0 : 0.21ms (0.02ms) per individual fetch
Raw DbDataReader materializer using object arrays : 0.28ms (0.02ms) per individual fetch
Massive using dynamic class : 0.29ms (0.02ms) per individual fetch
Oak.DynamicDb using dynamic Dto class : 0.36ms (0.15ms) per individual fetch
ServiceStack OrmLite v4.0.50.0 (v4.0.50.0) : 0.41ms (0.15ms) per individual fetch
LINQ to DB v1.0.7.3 (v1.0.7.3) (compiled) : 0.41ms (0.03ms) per individual fetch
LLBLGen Pro v5.0.0.0 (v5.0.0), Poco typed view with QuerySpec : 0.48ms (0.01ms) per individual fetch
LINQ to DB v1.0.7.3 (v1.0.7.3) (normal) : 0.49ms (0.02ms) per individual fetch
PetaPoco Fast v4.0.3 : 0.51ms (0.04ms) per individual fetch
LLBLGen Pro v5.0.0.0 (v5.0.0), DataTable based TypedView : 0.72ms (0.02ms) per individual fetch
Entity Framework v7.0.0.0 (v7.0.0.11116) : 0.79ms (0.03ms) per individual fetch
Entity Framework v6.0.0.0 (v6.1.40302.0) : 1.76ms (0.45ms) per individual fetch
Linq to Sql v4.0.0.0 (v4.6.1038.0) : 1.98ms (0.02ms) per individual fetch
LLBLGen Pro v5.0.0.0 (v5.0.0), Poco typed view with Linq : 2.00ms (0.81ms) per individual fetch
PetaPoco v4.0.3 : 4.34ms (0.04ms) per individual fetch
Change tracking individual fetches (100 elements, 25 runs), no caching
------------------------------------------------------------------------------
DataTable, using DbDataAdapter : 0.30ms (0.03ms) per individual fetch
LLBLGen Pro v5.0.0.0 (v5.0.0) : 0.41ms (0.03ms) per individual fetch
Oak.DynamicDb using typed dynamic class : 0.43ms (0.18ms) per individual fetch
NHibernate v4.0.0.4000 (v4.0.4.4000) : 0.63ms (0.04ms) per individual fetch
Entity Framework v7.0.0.0 (v7.0.0.11116) : 0.87ms (0.03ms) per individual fetch
Entity Framework v6.0.0.0 (v6.1.40302.0) : 0.96ms (0.08ms) per individual fetch
Linq to Sql v4.0.0.0 (v4.6.1038.0) : 2.56ms (0.68ms) per individual fetch
Change tracking fetches, eager load fetches, 3-node split graph, 1000 root elements (25 runs), no caching
------------------------------------------------------------------------------
LLBLGen Pro v5.0.0.0 (v5.0.0) : 77.38ms (1.72ms)
NHibernate v4.0.0.4000 (v4.0.4.4000) : 383.18ms (14.60ms)
Entity Framework v6.0.0.0 (v6.1.40302.0) : 424.45ms (29.75ms)
Linq to Sql v4.0.0.0 (v4.6.1038.0) : 437.46ms (1,782.49ms)
Entity Framework v7.0.0.0 (v7.0.0.11116) : 549.43ms (6.48ms)
Change tracking fetches, set fetches (25 runs), caching
------------------------------------------------------------------------------
LLBLGen Pro v5.0.0.0 (v5.0.0) : 77.96ms (2.42ms) Enum: 5.91ms (0.38ms)
Change tracking individual fetches (100 elements, 25 runs), caching
------------------------------------------------------------------------------
LLBLGen Pro v5.0.0.0 (v5.0.0) : 0.16ms (0.02ms) per individual fetch