我正在Mac上运行.Net Core 2.1和NPGSQL 4.0。我正在进行性能调整,并尝试运行100个http请求并使用Jmeter衡量性能。如您所见,第一个请求花费550毫秒,第25个请求花费3.9秒,最后一个第100个请求花费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;
}
}
}