在.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并发

asp.net 6中的mini api和mvc api性能对比_.net

 mvc 1并发

asp.net 6中的mini api和mvc api性能对比_.net_02


mini 10并发

asp.net 6中的mini api和mvc api性能对比_微信公众号_03

mvc 10并发

 asp.net 6中的mini api和mvc api性能对比_微信公众号_04


mini 30并发

asp.net 6中的mini api和mvc api性能对比_微信公众号_05

 mvc 30并发

asp.net 6中的mini api和mvc api性能对比_mvc_06


mini 40并发

asp.net 6中的mini api和mvc api性能对比_mvc_07

 mvc 40并发

asp.net 6中的mini api和mvc api性能对比_mvc_08


mini 50并发

asp.net 6中的mini api和mvc api性能对比_微信公众号_09

 mvc 50并发

asp.net 6中的mini api和mvc api性能对比_微信公众号_10


mini 60并发

asp.net 6中的mini api和mvc api性能对比_mvc_11

 mvc 60并发

asp.net 6中的mini api和mvc api性能对比_微信公众号_12


mini 100并发

asp.net 6中的mini api和mvc api性能对比_.net_13

 mvc 100并发

asp.net 6中的mini api和mvc api性能对比_.net_14


mini 200并发

asp.net 6中的mini api和mvc api性能对比_.net_15

 mvc 200并发

asp.net 6中的mini api和mvc api性能对比_微信公众号_16


mini 500并发

asp.net 6中的mini api和mvc api性能对比_微信公众号_17

 mvc 500并发

asp.net 6中的mini api和mvc api性能对比_mvc_18


为了方便对比,做了一个图形如下:

asp.net 6中的mini api和mvc api性能对比_.net_19

   从对比结果来看,两个项目框架性能相当(师出一门,肯定大差不差),mvc在的最高tps要好于mini,但mini的响应时间,从图上看,p90,p95,p99基本要优于mvc。

  想要更快更方便的了解相关知识,可以关注微信公众号 

asp.net 6中的mini api和mvc api性能对比_微信公众号_20