EFCore (第一轮请求结束后,20秒内进行第二轮请求),测试结果

服务程序部署到测试服务器上测试,连接MySql数据库。经过第一轮10000个请求的充分预热,取第二轮10000个请求的测试结果。

1200多

每个请求响应时间

不到50毫秒

最大达到143个线程

EFCore (第一轮请求结束后,20秒后进行第二轮请求),测试结果 吞吐量

每次请求响应时间

100毫秒

只有50多个线程

使用FactoryStartNew. StartNewThread 查询代码

FactoryStartNew. StartNewThread代码

使用FactoryStartNew. StartNewThread (第一轮请求),测试结果

服务程序部署到测试服务器上测试,连接MySql数据库。

不到200

每个请求响应时间

最长33秒

使用FactoryStartNew. StartNewThread (第一轮请求结束后,20秒内进行第二轮请求),测试结果

1000多

每个请求响应时间

200毫秒以内

高达260多个线程

使用FactoryStartNew. StartNewThread (第一轮并发请求结束后,20秒后进行第二轮请求),测试结果

只有200多

每个请求响应时间

最长达到了30秒 在等待创建线程,.NET默认线程池,1秒才增加一个线程

高达230多个线程

对比SqlSugar

同样的数据库,同样的数据,同样的查询,同样的JMeter测试设置,同样取第二轮测试结果。

每个请求响应时间

500毫秒

对比FreeSql

同样的数据库,同样的数据,同样的查询,同样的JMeter测试设置,同样取第二轮测试结果。

每个请求响应时间

不到500毫秒

对比Dapper.LiteSql 吞吐量

每个请求响应时间

400多毫秒

1、EFCore优秀,吞吐量和响应时间都非常优秀。

2、使用FactoryStartNew. StartNewThread,能用,但有问题。

3、如果觉得自己的ORM没问题,那就没有问题了,谁没事闲的做这种测试,慢一点不会死人,用户多了并发多了就加机器,作者和用户永远也不会知道,明明可以达到1000的吞吐量,却一直用的280吞吐量的ORM。

4、比EFCore慢不丢人。

5、不要说代码怎么写的,我要看测试结果。

测试 工程地址

- EOF -

点击标题可跳转

1、 .NET 7 正式发布

2、 .NET 6 多线程的几种打开方式

3、 推荐 20 个 .NET/.NET Core 优秀项目框架

↓推荐关注↓

「DotNet」专注.NET和.NET Core技术传播,包括:C#、.NET、.NET Core跨平台技术、工具资源和相关动态。

点赞和在看就是最大的支持❤️ 返回搜狐,查看更多

责任编辑: