Я использую .Net Core 2.1 и NPGSQL 4.0 на Mac. Я занимаюсь настройкой производительности и пытаюсь выполнить 100 http-запросов и измерить производительность с помощью Jmeter. Как вы можете видеть ниже, первый запрос занимает 550 миллисекунд, 25-й запрос занимает 3,9 секунды, а последний последний сотый запрос занимает 12,7 секунды. Что я могу сделать, чтобы улучшить производительность моего приложения? Я выполнил эти тесты в режиме выпуска, и база данных возвращает каждый запрос в течение 40 миллисекунд. Предполагается, что запросы выполняются все вместе, но к тому времени вы видите, что каждый запрос занимает больше времени, чем предыдущий.
public class HomeController : Controller
{
public static string ConnectionString = "Host=localhost;Username=postgres;Password=password;" +
"Database=dbname;port=port;CommandTimeout=50000;TIMEOUT=1024;POOLING=True;MINPOOLSIZE=1;MAXPOOLSIZE=100";
public async Task<String> Test()
{
string result = string.Empty;
using (var conn = new NpgsqlConnection(ConnectionString))
{
await conn.OpenAsync();
// Retrieve all rows
using (var cmd = new NpgsqlCommand("select json_build_object('Locations', array_to_json(array_agg(t))) from (SELECT latitudes,county,longitudes," +
"statelong, thirtylatmin,thirtylatmax,thirtylonmin,thirtylonmax,city" +
" FROM zips where city='Miami' ORDER BY city limit 5) t", conn))
{
using (var reader = await cmd.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
{
result = reader.GetString(0);
}
}
}
return result;
}
}
}