在.net6发布时,带来了一个新的模板框架,mini api,那与之前的mvc api性能对比是什么样的呢?
建了基于.net 6的两种模板项目,都实现了一个get /test01的api请求,代码如下:
mini api:
app.MapGet("/test01", () =>
{var arr = new string[] {"1","2","3","4","5","6","7","8","9","0"};var index = RandomNumberGenerator.GetInt32(arr.Length);return arr[index];
});
mvc api:
[HttpGet("/test01")]
public string Test01()
{var arr = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };var index = RandomNumberGenerator.GetInt32(arr.Length);return arr[index];
}
用JMeter进行的本地测试,因为两个应用用的测试环境一样,所以对比的结果更具有参考性。
分别有1并发,10并发,50并发,100并发,200并发,500并发来测试,结果如下:
mini 1并发
mvc 1并发
mini 10并发
mvc 10并发
mini 30并发
mvc 30并发
mini 40并发
mvc 40并发
mini 50并发
mvc 50并发
mini 60并发
mvc 60并发
mini 100并发
mvc 100并发
mini 200并发
mvc 200并发
mini 500并发
mvc 500并发
为了方便对比,做了一个图形如下:
从对比结果来看,两个项目框架性能相当(师出一门,肯定大差不差),mvc在的最高tps要好于mini,但mini的响应时间,从图上看,p90,p95,p99基本要优于mvc。