forked from DapperLib/Dapper
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBenchmarks.Dapper.cs
More file actions
64 lines (56 loc) · 2.05 KB
/
Benchmarks.Dapper.cs
File metadata and controls
64 lines (56 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using BenchmarkDotNet.Attributes;
using Dapper.Contrib.Extensions;
using System.Linq;
namespace Dapper.Tests.Performance
{
public class DapperBenchmarks : BenchmarkBase
{
[GlobalSetup]
public void Setup()
{
BaseSetup();
}
[Benchmark(Description = "Query<T> (buffered)")]
public Post QueryBuffered()
{
Step();
return _connection.Query<Post>("select * from Posts where Id = @Id", new { Id = i }, buffered: true).First();
}
[Benchmark(Description = "Query<dyanmic> (buffered)")]
public dynamic QueryBufferedDynamic()
{
Step();
return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: true).First();
}
[Benchmark(Description = "Query<T> (unbuffered)")]
public Post QueryUnbuffered()
{
Step();
return _connection.Query<Post>("select * from Posts where Id = @Id", new { Id = i }, buffered: false).First();
}
[Benchmark(Description = "Query<dyanmic> (unbuffered)")]
public dynamic QueryUnbufferedDynamic()
{
Step();
return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: false).First();
}
[Benchmark(Description = "QueryFirstOrDefault<T>")]
public Post QueryFirstOrDefault()
{
Step();
return _connection.QueryFirstOrDefault<Post>("select * from Posts where Id = @Id", new { Id = i });
}
[Benchmark(Description = "QueryFirstOrDefault<dyanmic>")]
public dynamic QueryFirstOrDefaultDynamic()
{
Step();
return _connection.QueryFirstOrDefault("select * from Posts where Id = @Id", new { Id = i }).First();
}
[Benchmark(Description = "Contrib Get<T>")]
public Post ContribGet()
{
Step();
return _connection.Get<Post>(i);
}
}
}