Skip to content

Commit 0e7509d

Browse files
committed
Some code cleanup
1 parent 060ae5c commit 0e7509d

File tree

1 file changed

+80
-106
lines changed
  • frameworks/CSharp/aspnetcore/PlatformBenchmarks/Data/Providers

1 file changed

+80
-106
lines changed

frameworks/CSharp/aspnetcore/PlatformBenchmarks/Data/Providers/RawDbNpgsql.cs

Lines changed: 80 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@
33

44
#if NPGSQL
55

6-
using System;
7-
using System.Collections.Generic;
8-
using System.Linq;
96
using System.Runtime.CompilerServices;
10-
using System.Threading.Tasks;
117
using Microsoft.Extensions.Caching.Memory;
128
using Npgsql;
139

@@ -33,35 +29,27 @@ public RawDb(ConcurrentRandom random, AppSettings appSettings)
3329

3430
public async Task<World> LoadSingleQueryRow()
3531
{
36-
using (var db = new NpgsqlConnection(_connectionString))
37-
{
38-
await db.OpenAsync();
32+
using var db = new NpgsqlConnection(_connectionString);
33+
await db.OpenAsync();
3934

40-
var (cmd, _) = CreateReadCommand(db);
41-
using (cmd)
42-
{
43-
return await ReadSingleRow(cmd);
44-
}
45-
}
35+
var (cmd, _) = CreateReadCommand(db);
36+
using var command = cmd;
37+
return await ReadSingleRow(cmd);
4638
}
4739

4840
public async Task<World[]> LoadMultipleQueriesRows(int count)
4941
{
5042
var result = new World[count];
5143

52-
using (var db = new NpgsqlConnection(_connectionString))
53-
{
54-
await db.OpenAsync();
44+
using var db = new NpgsqlConnection(_connectionString);
45+
await db.OpenAsync();
5546

56-
var (cmd, idParameter) = CreateReadCommand(db);
57-
using (cmd)
58-
{
59-
for (int i = 0; i < result.Length; i++)
60-
{
61-
result[i] = await ReadSingleRow(cmd);
62-
idParameter.TypedValue = _random.Next(1, 10001);
63-
}
64-
}
47+
var (cmd, idParameter) = CreateReadCommand(db);
48+
using var command = cmd;
49+
for (int i = 0; i < result.Length; i++)
50+
{
51+
result[i] = await ReadSingleRow(cmd);
52+
idParameter.TypedValue = _random.Next(1, 10001);
6553
}
6654

6755
return result;
@@ -91,32 +79,28 @@ public Task<CachedWorld[]> LoadCachedQueries(int count)
9179

9280
static async Task<CachedWorld[]> LoadUncachedQueries(int id, int i, int count, RawDb rawdb, CachedWorld[] result)
9381
{
94-
using (var db = new NpgsqlConnection(rawdb._connectionString))
82+
using var db = new NpgsqlConnection(rawdb._connectionString);
83+
await db.OpenAsync();
84+
85+
var (cmd, idParameter) = rawdb.CreateReadCommand(db);
86+
using var command = cmd;
87+
Func<ICacheEntry, Task<CachedWorld>> create = async _ =>
9588
{
96-
await db.OpenAsync();
97-
98-
var (cmd, idParameter) = rawdb.CreateReadCommand(db);
99-
using (cmd)
100-
{
101-
Func<ICacheEntry, Task<CachedWorld>> create = async _ =>
102-
{
103-
return await rawdb.ReadSingleRow(cmd);
104-
};
105-
106-
var cacheKeys = _cacheKeys;
107-
var key = cacheKeys[id];
108-
109-
idParameter.TypedValue = id;
110-
111-
for (; i < result.Length; i++)
112-
{
113-
result[i] = await rawdb._cache.GetOrCreateAsync(key, create);
114-
115-
id = rawdb._random.Next(1, 10001);
116-
idParameter.TypedValue = id;
117-
key = cacheKeys[id];
118-
}
119-
}
89+
return await rawdb.ReadSingleRow(cmd);
90+
};
91+
92+
var cacheKeys = _cacheKeys;
93+
var key = cacheKeys[id];
94+
95+
idParameter.TypedValue = id;
96+
97+
for (; i < result.Length; i++)
98+
{
99+
result[i] = await rawdb._cache.GetOrCreateAsync(key, create);
100+
101+
id = rawdb._random.Next(1, 10001);
102+
idParameter.TypedValue = id;
103+
key = cacheKeys[id];
120104
}
121105

122106
return result;
@@ -125,21 +109,17 @@ static async Task<CachedWorld[]> LoadUncachedQueries(int id, int i, int count, R
125109

126110
public async Task PopulateCache()
127111
{
128-
using (var db = new NpgsqlConnection(_connectionString))
129-
{
130-
await db.OpenAsync();
112+
using var db = new NpgsqlConnection(_connectionString);
113+
await db.OpenAsync();
131114

132-
var (cmd, idParameter) = CreateReadCommand(db);
133-
using (cmd)
134-
{
135-
var cacheKeys = _cacheKeys;
136-
var cache = _cache;
137-
for (var i = 1; i < 10001; i++)
138-
{
139-
idParameter.TypedValue = i;
140-
cache.Set<CachedWorld>(cacheKeys[i], await ReadSingleRow(cmd));
141-
}
142-
}
115+
var (cmd, idParameter) = CreateReadCommand(db);
116+
using var command = cmd;
117+
var cacheKeys = _cacheKeys;
118+
var cache = _cache;
119+
for (var i = 1; i < 10001; i++)
120+
{
121+
idParameter.TypedValue = i;
122+
cache.Set<CachedWorld>(cacheKeys[i], await ReadSingleRow(cmd));
143123
}
144124

145125
Console.WriteLine("Caching Populated");
@@ -149,37 +129,35 @@ public async Task<World[]> LoadMultipleUpdatesRows(int count)
149129
{
150130
var results = new World[count];
151131

152-
using (var db = new NpgsqlConnection(_connectionString))
153-
{
154-
await db.OpenAsync();
132+
using var db = new NpgsqlConnection(_connectionString);
133+
await db.OpenAsync();
155134

156-
var (queryCmd, queryParameter) = CreateReadCommand(db);
157-
using (queryCmd)
135+
var (queryCmd, queryParameter) = CreateReadCommand(db);
136+
using (queryCmd)
137+
{
138+
for (int i = 0; i < results.Length; i++)
158139
{
159-
for (int i = 0; i < results.Length; i++)
160-
{
161-
results[i] = await ReadSingleRow(queryCmd);
162-
queryParameter.TypedValue = _random.Next(1, 10001);
163-
}
140+
results[i] = await ReadSingleRow(queryCmd);
141+
queryParameter.TypedValue = _random.Next(1, 10001);
164142
}
143+
}
165144

166-
using (var updateCmd = new NpgsqlCommand(BatchUpdateString.Query(count), db))
167-
{
168-
var ids = BatchUpdateString.Ids;
169-
var randoms = BatchUpdateString.Randoms;
170-
171-
for (int i = 0; i < results.Length; i++)
172-
{
173-
var randomNumber = _random.Next(1, 10001);
145+
using (var updateCmd = new NpgsqlCommand(BatchUpdateString.Query(count), db))
146+
{
147+
var ids = BatchUpdateString.Ids;
148+
var randoms = BatchUpdateString.Randoms;
174149

175-
updateCmd.Parameters.Add(new NpgsqlParameter<int>(parameterName: ids[i], value: results[i].Id));
176-
updateCmd.Parameters.Add(new NpgsqlParameter<int>(parameterName: randoms[i], value: randomNumber));
150+
for (int i = 0; i < results.Length; i++)
151+
{
152+
var randomNumber = _random.Next(1, 10001);
177153

178-
results[i].RandomNumber = randomNumber;
179-
}
154+
updateCmd.Parameters.Add(new NpgsqlParameter<int>(parameterName: ids[i], value: results[i].Id));
155+
updateCmd.Parameters.Add(new NpgsqlParameter<int>(parameterName: randoms[i], value: randomNumber));
180156

181-
await updateCmd.ExecuteNonQueryAsync();
157+
results[i].RandomNumber = randomNumber;
182158
}
159+
160+
await updateCmd.ExecuteNonQueryAsync();
183161
}
184162

185163
return results;
@@ -193,17 +171,15 @@ public async Task<List<Fortune>> LoadFortunesRows()
193171
{
194172
await db.OpenAsync();
195173

196-
using (var cmd = new NpgsqlCommand("SELECT id, message FROM fortune", db))
197-
using (var rdr = await cmd.ExecuteReaderAsync())
174+
using var cmd = new NpgsqlCommand("SELECT id, message FROM fortune", db);
175+
using var rdr = await cmd.ExecuteReaderAsync();
176+
while (await rdr.ReadAsync())
198177
{
199-
while (await rdr.ReadAsync())
200-
{
201-
result.Add(new Fortune
202-
(
203-
id:rdr.GetInt32(0),
204-
message: rdr.GetString(1)
205-
));
206-
}
178+
result.Add(new Fortune
179+
(
180+
id:rdr.GetInt32(0),
181+
message: rdr.GetString(1)
182+
));
207183
}
208184
}
209185

@@ -226,16 +202,14 @@ public async Task<List<Fortune>> LoadFortunesRows()
226202
[MethodImpl(MethodImplOptions.AggressiveInlining)]
227203
private async Task<World> ReadSingleRow(NpgsqlCommand cmd)
228204
{
229-
using (var rdr = await cmd.ExecuteReaderAsync(System.Data.CommandBehavior.SingleRow))
230-
{
231-
await rdr.ReadAsync();
205+
using var rdr = await cmd.ExecuteReaderAsync(System.Data.CommandBehavior.SingleRow);
206+
await rdr.ReadAsync();
232207

233-
return new World
234-
{
235-
Id = rdr.GetInt32(0),
236-
RandomNumber = rdr.GetInt32(1)
237-
};
238-
}
208+
return new World
209+
{
210+
Id = rdr.GetInt32(0),
211+
RandomNumber = rdr.GetInt32(1)
212+
};
239213
}
240214

241215
private static readonly object[] _cacheKeys = Enumerable.Range(0, 10001).Select(i => new CacheKey(i)).ToArray();

0 commit comments

Comments
 (0)