当前位置: 首页 > news >正文

网站开发 word文件预览WordPress添加前台漂亮注册

网站开发 word文件预览,WordPress添加前台漂亮注册,海口紧急通告,北京网站建设制作方案前言 性能是我们日常生活中经常接触到的一个词语#xff0c;更好的性能意味着能给我们带来更好的用户体检。比如我们在购买手机、显卡、CPU等的时候#xff0c;可能会更加的关注于这样指标#xff0c;所以本篇就来做一个性能评测。 性能也一直是我们开发人员一直追求的一个目… 前言 性能是我们日常生活中经常接触到的一个词语更好的性能意味着能给我们带来更好的用户体检。比如我们在购买手机、显卡、CPU等的时候可能会更加的关注于这样指标所以本篇就来做一个性能评测。 性能也一直是我们开发人员一直追求的一个目标我们在做语言选择平台选择架构选择的过程中都需要在性能之间做衡量。 同样性能对 .NET Core 团队来说也是至关重要的一项新技术的诞生除了对生产力的提高还有技术团队对性能的追求。 今天我们就来做一个对比测试来看看微软的这样新技术性能到底怎么样俗话说的好“是骡子是马拉出来溜溜”。 下面让我开始吧。 测试目标 在测试之前我们必须要明确我们本次测试想达到的一个目标。本次测试主要是测试应用程序的一个吞吐量。其中QPS并发数响应时间是我们衡量吞吐量的几个重要指标。 以下是本次对比测试的任务目标 编号对比方系统环境宿主环境测试目标1ASP.NET Core vs ASP.NET CoreWindowsKestrel vs IIS相同平台不同宿主间性能差距2ASP.NET Core vs ASP.NETWindowsIIS vs IIS相同平台相同宿主不同框架间性能差距3ASP.NET Core vs ASP.NETWindowsKestrel vs IIS相同平台不同宿主不同框架间性能差距4ASP.NET Core vs Python DjangoLinuxKestrel vs uwsgi相同平台不同语言不同宿主不同框架间性能差距5ASP.NET Core vs Java ServletLinuxKestrel vs Tomcat相同平台不同语言不同宿主不同框架间性能差距6ASP.NET Core vs NodeJSLinuxKestrel vs self host相同平台不同语言不同宿主不同框架间性能差距 测试工具 工欲善其事必先利其器。 首先我们需要一个压力测试工具本次我们使用 wrk有关于wrk的介绍和使用请查看我的 这篇博客。 然后我们需要一个性能监控工具因为wrk已经会给我们输出吞吐量相关指标所以我们只需要一个监控CPU内存等的工具即可。本次我们使用 Windows 自带的性能监视器。 Windows 性能监视器的打开方式开始--运行--perfmonPS: 在下面的监视器图中如果你发现cpu并没有100%那是因为使用的虚拟机占用了一部分cpu所以计算方式应该是虚拟机的cpu使用量物理机cpu使用量。 环境准备 既然做测试首先肯定是具有相同的运行环境以下是本次测试使用到的软件和硬件环境。 软硬件环境 名称操作系统职责CPU核心数内存物理机器1Windows 10 RS1Web Server 负载生成Intel Core i5-4590416G虚拟机器2Ubuntu Server 16.04Web ServerIntel Core i5-459021G 其中 虚拟机器2 为 “物理机器1” 使用 win 10 的 Hyper-v 技术搭建的一个虚拟机所以有几个指标对于本次测试至关重要。 虚拟机设置为了2个虚拟核心以便于在压力测试的过程中利用到多核特性。其中的虚拟机保留百分比需要设置为100%来分配两个物理cpu所有资源给它。占综系统资源百分比设置为50也就是说虚拟机最多利用本地50%的CPU资源虚拟机限制设置为100。 源代码 AspNet 在 GitHub 有一个开源的性能测试项目叫benchmarks之前新闻中23倍的性能也是出自于本测试项目 为了客观本次测试并不使用该项目所有项目均我们自己新建并且使用当前流行的框架,为了排除代码因素的干扰我们使用最简单的 Hello World。 如果你觉得本代码不够客观公正欢迎在GitHub上Fork本项目修改后给我提交PR我会重新进行测试并且更新本博客。 GitHub: https://github.com/yuleyule66/AspNetCoreBenchmarksCompare 开始测试 wkr命令参数 wrk -t 2 -c 50 -d 20 --latency http://xxx 因为已经分配了2个核心给虚拟机使用所以开的是双线程。使用这个参数是我经过多次测试得到的一个最佳的模拟效果。 1 - ASP.NET Core vs ASP.NET CoreKestrel vs IIS ASP.NET Core 环境物理机器1OSWindows 10 RS 1HostKestrel wrk -t 2 -c 50 -d 20 --latency http://localhost:5000Running 20s test http://localhost:50002 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     5.49ms   21.72ms 358.18ms   98.99%Req/Sec    23.28k     1.98k   27.48k    92.13%Latency Distribution     50%    0.00us     75%    6.87ms     90%   12.76ms     99%   28.58ms  913567 requests in 20.02s, 115.00MB read Requests/sec:  45636.43Transfer/sec:      5.74MB ASP.NET Core 环境物理机器1OSWindows 10 RS 1HostIIS 10.0 wrk -t 2 -c 50 -d 20 --latency http://localhost:5001Running 20s test http://localhost:50012 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     5.30ms    5.81ms  22.24ms   76.75%Req/Sec     7.61k   455.21     8.12k    90.00%Latency Distribution     50%    3.14ms     75%    9.02ms     90%   15.62ms     99%   17.17ms  302880 requests in 20.02s, 44.77MB read Requests/sec:  15130.97Transfer/sec:      2.24MB 总结 QPSKestrel45636.43QPSIIS15130.97 这个结果难免令人诧异程序部署在IIS上和使用Kestrel竟然差别如此之大我们知道实际上即便部署在IIS上实际上内部还是调用的Kestrel但是测试结果告诉了我们答案。可能是由于IIS进一步的http封装导致的吧毕竟IIS提供了那么多的其他功能。 以下是Windows的性能监视器两个的曲线图差不多我就放一个了 红色CPU使用率蓝色内存使用率 2 - ASP.NET Core vs ASP.NETIIS vs IIS ASP.NET Core 环境物理机器1OSWindows 10 RSHostIIS wrk -t 2 -c 50 -d 20 --latency http://localhost:5001Running 20s test http://localhost:50012 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     5.30ms    5.81ms  22.24ms   76.75%Req/Sec     7.61k   455.21     8.12k    90.00%Latency Distribution     50%    3.14ms     75%    9.02ms     90%   15.62ms     99%   17.17ms  302880 requests in 20.02s, 44.77MB read Requests/sec:  15130.97Transfer/sec:      2.24MB ASP.NET 环境物理机器1OSWindows 10 RSHostIIS.NET Framework 4.6 MVC5 wrk -t 2 -c 50 -d 20 --latency http://localhost:10280Running 20s test http://localhost:102802 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     4.94ms    5.58ms  22.82ms   80.90%Req/Sec     9.10k   444.04     9.42k    95.00%Latency Distribution     50%    3.00ms     75%   10.10ms     90%   13.57ms     99%   16.45ms  362177 requests in 20.00s, 89.80MB read Requests/sec:  18104.50Transfer/sec:      4.49MB 总结 QPSASP.NET Core IIS15130.97QPSASP.NET IIS18104.50 看到这个结果的时候其实我还是有一点小惊讶的不仅仅是因为ASP.NET跑出了1.8K QPS这样的成绩而是通过Stdev可以看出ASP.NET 在应对高请求高并发的时候还是相当的稳定的。这个结果说明了在同样WindowsIIS环境中ASP.NET是具有优势和竞争力的可以预见 ASP.NET 应该还不会淘汰的太快。 Windows性能图我就不上了基本上和上面一样 CPU 100% 的使用率。 3 - ASP.NET Core vs ASP.NETKestrel vs IIS ASP.NET Core 环境物理机器1OSWindows 10 RS 1HostKestrel wrk -t 2 -c 50 -d 20 --latency http://localhost:5000Running 20s test http://localhost:50002 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     5.49ms   21.72ms 358.18ms   98.99%Req/Sec    23.28k     1.98k   27.48k    92.13%Latency Distribution     50%    0.00us     75%    6.87ms     90%   12.76ms     99%   28.58ms  913567 requests in 20.02s, 115.00MB read Requests/sec:  45636.43Transfer/sec:      5.74MB ASP.NET 环境物理机器1OSWindows 10 RSHostIIS.NET Framework 4.6 MVC5 wrk -t 2 -c 50 -d 20 --latency http://localhost:10280Running 20s test http://localhost:102802 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     4.94ms    5.58ms  22.82ms   80.90%Req/Sec     9.10k   444.04     9.42k    95.00%Latency Distribution     50%    3.00ms     75%   10.10ms     90%   13.57ms     99%   16.45ms  362177 requests in 20.00s, 89.80MB read Requests/sec:  18104.50Transfer/sec:      4.49MB 总结 QPSASP.NET Core Kestrel45636.43 QPSASP.NET IIS18104.50 这个结果应该是在预料之中的大概是3倍的性能差距吧。但是我觉得和之前微软宣传的23倍的性能是有很大差距的。 4 - ASP.NET Core vs Python Django 注意以下我们开始使用到虚拟机器2了我们要在Windows性能监控器里面查看CPU使用率还需要再添加2个计数器。 物理处理器 \Hyper-V Hypervisor Logical Processor(*) \ %Total Run Time 虚拟处理器 \Hyper-V Hypervisor Virtual Processor(*) \ %Guest Run Time ASP.NET Core 环境虚拟机器2OSLinuxHostKestrel wrk -t 2 -c 50 -d 20 --latency http://192.168.2.48:5000/Running 20s test http://192.168.2.48:5000/2 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     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.83Transfer/sec:      3.37MB Python Django 环境虚拟机器2OSLinuxHostuwsgiPython 2.7.12 Django 1.10.2 服务端宿主运行命令 sudo uwsgi --http :8000 --file HelloWorldWebApp/wsgi.py --processes2 --threads2 --daemonize/var/log/django.log 结果 wrk -t 2 -c 50 -d 20 --latency http://192.168.2.48:8000Running 20s test http://192.168.2.48:80002 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency    23.40ms   12.23ms  78.13ms   74.81%Req/Sec   792.64    143.13     1.25k    67.10%Latency Distribution     50%   21.16ms     75%   31.25ms     90%   38.26ms     99%   53.75ms  31591 requests in 20.09s, 3.01MB readSocket errors: connect 0, read 31591, write 0, timeout 0Requests/sec:   1572.64Transfer/sec:    153.67KB 总结 QPSASP.NET Core Kestrel26730.83 QPSPython Django Kestrel 1572.64 不知道是我运行的方式不对还是怎么这个差距还是蛮大的大概是17倍的差距。看来Python Web 在做针对于做大请求并发情况下还是弱了一点。 5 - ASP.NET Core vs Java Servlet C# 和 JAVA 一直是两大阵营的开发人员喜欢讨论的话题为了避免有阵营偏见JAVA的源代码是我委托我们一个JAVA同事编写的并且委托由他部署的并且已经交代了他避免使用jsp由Servlet直接输出。 ASP.NET Core 环境虚拟机器2OSLinuxHostKestrel wrk -t 2 -c 50 -d 20 --latency http://192.168.2.48:5000/Running 20s test http://192.168.2.48:5000/2 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     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.83Transfer/sec:      3.37MB Java Servlet 环境虚拟机器2OSLinuxHostTomcat 7.0 jdk 1.7 wrk -t 2 -c 50 -d 20 --latency http://192.168.2.48:8080/j2eeWebApp/helloRunning 20s test http://192.168.2.48:8080/j2eeWebApp/hello2 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     4.93ms    6.17ms  68.17ms   81.53%Req/Sec     9.22k     1.01k   14.06k    70.50%Latency Distribution     50%    1.75ms     75%    9.91ms     90%   14.39ms     99%   22.10ms  367733 requests in 20.05s, 93.70MB read Requests/sec:  18338.73Transfer/sec:      4.67MB 总结 QPSASP.NET Core Kestrel26730.83 QPSJava Servlet Tomcat18338.73 通过这个结果我们可以看出在性能上 ASP.NET Core 已经超越了Java。不说太多了怕被喷... 6 - ASP.NET Core vs NodeJS ASP.NET Core 环境虚拟机器2OSLinuxHostKestrel wrk -t 2 -c 50 -d 20 --latency http://192.168.2.48:5000/Running 20s test http://192.168.2.48:5000/2 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     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.83Transfer/sec:      3.37MB NodeJS 环境虚拟机器2OSLinuxHostself host wrk -t 2 -c 50 -d 20 --latency http://192.168.2.48:1337Running 20s test http://192.168.2.48:13372 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     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.89Transfer/sec:      3.05MB 总结 QPSASP.NET Core Kestrel26730.83 QPSNodeJS20522.89 这个结果着实让我吃了一惊NodeJS性能竟然如此惊人比JAVA要快10%。作为一个解释性语言这个性能可以说达到了极致虽然在测试之前知道NodeJS采用的是异步IO但还是被测试结果震惊了。 不知道是不是因为NodeJS没有经过什么Web框架直接输出的结果。所以我需要再加测一个ASP.NET Core 通过中间件直接输入结果的性能这次我要使用微软的测试项目benchmarks。 wrk -t 2 -c 50 -d 20 --latency http://192.168.2.48:5000/plaintextRunning 20s test http://192.168.2.48:5000/plaintext2 threads and 50 connectionsThread Stats   Avg      Stdev     Max   /- StdevLatency     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.57Transfer/sec:      6.28MB My God !!! 总结 以下是测试结果的汇总统计 编号对比方系统环境宿主环境测试结果QPS1ASP.NET Core vs ASP.NET CoreWindowsKestrel vs IIS45.6k vs 15.2k2ASP.NET Core vs ASP.NETWindowsIIS vs IIS15.2k vs 18.2k3ASP.NET Core vs ASP.NETWindowsKestrel vs IIS45.6k vs 18.2k4ASP.NET Core vs Python DjangoLinuxKestrel vs uwsgi26.7k vs 1.57k5ASP.NET Core vs Java ServletLinuxKestrel vs Tomcat26.7k vs 18.3k6ASP.NET Core vs NodeJSLinuxKestrel vs self host26.7k vs 20.5k 作为微软的下一代 ASP.NET 框架ASP.NET Core没有让我们失望通过本次测试我们大概对ASP.NET Core的性能心里有底了。一个圈子的良好发展需要社区的共同参与也希望大家共同为.NET Core社区贡献自己的力量同时也希望看到本篇文章的CTOs们以后在平台和框架选择的过程中考虑一下ASP.NET Core因为她真的很优秀。 原文链接http://www.cnblogs.com/savorboard/p/dotnet-benchmarks.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.sadfv.cn/news/2359/

相关文章: