HTML5技术

ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS) - Savorboard(3)

字号+ 作者:H5之家 来源:H5之家 2016-10-20 10:00 我要评论( )

ASP.NET Core wrk -t 2 -c 50 -d 20 --latency :5000/Running 20s test @ :5000/ 2 threads and 50 connections Thread Stats AvgStdevMax +/- StdevLatency4.39ms 5.33ms 33.05ms 77.20%Req/Sec 13.43k1.32k 17.95

ASP.NET Core

wrk -t 2 -c 50 -d 20 --latency :5000/ Running 20s test @ :5000/ 2 threads and 50 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.39ms 5.33ms 33.05ms 77.20% Req/Sec 13.43k 1.32k 17.95k 74.75% Latency Distribution 50% 2.00ms 75% 8.15ms 90% 13.75ms 99% 15.80ms 534787 requests in 20.01s, 67.32MB read Requests/sec: 26730.83 Transfer/sec: 3.37MB

NodeJS

wrk -t 2 -c 50 -d 20 --latency :1337 Running 20s test @ :1337 2 threads and 50 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.40ms 5.23ms 31.25ms 79.47% Req/Sec 10.32k 0.88k 11.37k 90.25% Latency Distribution 50% 2.08ms 75% 8.32ms 90% 13.19ms 99% 15.93ms 410902 requests in 20.02s, 61.13MB read Requests/sec: 20522.89 Transfer/sec: 3.05MB

image

***************更新1:NodeJS 添加Web框架*******

Express框架,cluster模式

wrk -t 2 -c 30 -d 20 --latency :1337 Running 20s test @ :1337 2 threads and 30 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.97ms 1.45ms 32.23ms 83.97% Req/Sec 7.83k 0.90k 8.82k 91.50% Latency Distribution 50% 2.00ms 75% 2.50ms 90% 3.50ms 99% 6.00ms 311896 requests in 20.01s, 66.03MB read Requests/sec: 15583.99 Transfer/sec: 3.30MB

Koa框架,cluster模式

wrk -t 2 -c 30 -d 20 --latency :1337 Running 20s test @ :1337 2 threads and 30 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.74ms 0.86ms 13.59ms 86.65% Req/Sec 8.79k 804.39 9.98k 87.75% Latency Distribution 50% 1.99ms 75% 2.00ms 90% 2.96ms 99% 4.83ms 349856 requests in 20.02s, 53.38MB read Requests/sec: 17478.73 Transfer/sec: 2.67MB

从测试结果可以看出,Koa框架性能略高于Express框架。

**************End***********

总结

QPS(ASP.NET Core + Kestrel):26730.83

QPS(NodeJS):20522.89 (非cluster模式)
QPS(NodeJS Express):15583.99 (cluster模式)
QPS(NodeJS Koa):17478.73 (cluster模式)

这个结果着实让我吃了一惊,NodeJS性能竟然如此惊人,比JAVA要快10%。作为一个解释性语言这个性能可以说达到了极致,虽然在测试之前知道NodeJS采用的是异步IO,但还是被测试结果震惊了。

===========更新1=========

NodeJS 在加入了Web框架之后,性能仍然不弱。

不知道是不是因为NodeJS没有经过什么Web框架,直接输出的结果。所以我需要再加测一个ASP.NET Core 通过中间件直接输入结果的性能,这次我要使用微软的测试项目benchmarks。

wrk -t 2 -c 50 -d 20 --latency :5000/plaintext Running 20s test @ :5000/plaintext 2 threads and 50 connections Thread Stats Avg Stdev Max +/- Stdev Latency 3.69ms 5.03ms 18.30ms 80.38% Req/Sec 25.06k 4.14k 29.19k 83.33% Latency Distribution 50% 806.00us 75% 6.82ms 90% 12.62ms 99% 15.63ms 1002476 requests in 20.10s, 126.20MB read Requests/sec: 49874.57 Transfer/sec: 6.28MB

My God !!!

总结

以下是测试结果的汇总统计:

编号 对比方 系统环境 宿主环境 测试结果(QPS)

1 ASP.NET Core vs ASP.NET Core Windows Kestrel vs IIS 45.6k vs 15.2k

2 ASP.NET Core vs ASP.NET Windows IIS vs IIS 15.2k vs 18.2k

3 ASP.NET Core vs ASP.NET Windows Kestrel vs IIS 45.6k vs 18.2k

4 ASP.NET Core vs Python Django Linux Kestrel vs uwsgi 26.7k vs 1.57k

5 ASP.NET Core vs Java Servlet Linux Kestrel vs Tomcat 26.7k vs 18.3k

6-1 ASP.NET Core vs NodeJS Express Linux Kestrel vs self host 26.7k vs 15.6k

6-2 ASP.NET Core vs NodeJS Koa Linux Kestrel vs self host 26.7k vs 17.5k

image

作为微软的下一代 ASP.NET 框架,ASP.NET Core没有让我们失望,通过本次测试,我们大概对ASP.NET Core的性能心里有底了。一个圈子的良好发展需要社区的共同参与,也希望大家共同为.NET Core社区贡献自己的力量,同时也希望看到本篇文章的CTOs们以后在平台和框架选择的过程中考虑一下ASP.NET Core,因为她真的很优秀。

如果你觉得本篇博客对您有帮助的话,感谢您的【推荐】,如果你对.NET Core感兴趣可以关注我,我会定期在博客分享关于.NET Core的学习心得。

========更新1 :2016-10-17 感谢园友“幻天芒” 关于NodeJS的贡献======

有园友反应NodeJS项目没有使用web mvc框架,所以特更新,同时感谢 "幻天芒" 在github向nodeJS项目提交的PR。

1、添加node 多核cpu cluster 模式
2、添加node koa框架和express框架测试

更新测试结果。

========更新2 :2016-10-19 添加ASP.NET Core 在Windows Nano Server的测试结果======

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ASP.NET Aries 4.0 开源发布:已完成基础功能优化重写 - 路过秋天

    ASP.NET Aries 4.0 开源发布:已完成基础功能优化重写 - 路过秋天

    2016-10-19 17:00

  • Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现 - Fonour

    Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的

    2016-09-26 14:00

  • asp.net mvc signalr 简单聊天室 - liuhz

    asp.net mvc signalr 简单聊天室 - liuhz

    2016-09-25 17:02

  • ASP.NET Core MVC 配置全局路由前缀 - Savorboard

    ASP.NET Core MVC 配置全局路由前缀 - Savorboard

    2016-09-25 11:00

网友点评
v