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

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

2cfe2369213eaeb8021e17bb55529790.png

mvc 1并发

c92922a2270c25a8efe73d82f2bd11e8.png

mini 10并发

c5181252b1eb02506393db01313a7859.png

mvc 10并发

131da92ca876a3b10289e5d693f7a207.png

mini 30并发

65f96159ccdae1a6002a3421fac50e2e.png

mvc 30并发

a8e997461587e5328418aff1cd6da0b3.png

mini 40并发

26dfa47222ece211c60b8f7d11cba713.png

mvc 40并发

075aa4be55caef29b1b51142c1fed40b.png

mini 50并发

c2d9324558a59564cb56734fe1c55938.png

mvc 50并发

c7debf0fe3055a11d3beeae8ece3f6b3.png

mini 60并发

ed72054ed6c4779bb801560eba624642.png

mvc 60并发

dcad71122ca124dc75a93b23cbe87108.png

mini 100并发

fcaf7c57b4d36722cfbf29f4ee1d8280.png

mvc 100并发

2330d0022c03e03103978fe789f2823f.png

mini 200并发

997c69fc85a5315d8583c5741703b012.png

mvc 200并发

3451faeb071ef80aeea1b665333b7b74.png

mini 500并发

b0d85bbe089f505b12d18633b5ca1650.png

mvc 500并发

bf50af26ccd04e2f0d2f1a7dcfd27ae4.png

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

7c7fba94115f159284ce080bf411bf1e.png

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值