Мое приложение работает медленнее после последовательных вызовов HTTP - PullRequest
0 голосов
/ 30 июня 2018

Я использую .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;
        } 
    }
}

enter image description here

...