-
Notifications
You must be signed in to change notification settings - Fork 19
Conversation
@zensh header 越多效果越明显 eggjs/egg-security#3 benchmark https://gist.github.com/fengmk2/1634043ec1d40e09b53197b817411131 |
@fengmk2 之前看 HTTP Header Fields 相关文档,以为大小写形式是标准,就全部改成大小写形式了。还是要多看规范~ |
规范是不区分大小的。 |
@zensh 又可以跟 koa 性能拉开距离了。 |
感觉的确涨了:
|
要对比之前的版本才能看到效果 |
@zensh 在本地跑了几回 benchmarks,koa 和 toa 的数据很接近,没跑出优势出来(姿势不对吗?) 机器:
|
上面贴的是 v6.4 下的结果,v4.5 下的结果是:(MacBook Pro 2.4 GHz Intel Core i5) koa, 1 middleware: 5004.12 koa, 5 middleware: 4934.42 koa, 10 middleware: 5010.89 koa, 15 middleware: 4852.47 koa, 20 middleware: 4776.92 koa, 30 middleware: 4660.21 koa, 50 middleware: 4466.62 koa, 100 middleware: 3998.61 toa, 1 middleware: 6168.07 toa, 5 middleware: 6047.31 toa, 10 middleware: 6077.15 toa, 15 middleware: 5837.98 toa, 20 middleware: 5710.34 toa, 30 middleware: 5386.09 toa, 50 middleware: 5163.73 toa, 100 middleware: 4351.49 你用的 node 什么版本? |
Node v6.5.0 |
我在 v6.5下跑出来是这个样子: ➜ toa git:(master) npm run bench
> toa@1.8.10 bench /Users/zensh/git/js/toa
> cd bench && make
koa, 1 middleware: 5725.18
koa, 5 middleware: 5418.50
koa, 10 middleware: 5290.23
koa, 15 middleware: 5278.08
koa, 20 middleware: 4965.67
koa, 30 middleware: 4832.33
koa, 50 middleware: 4447.08
koa, 100 middleware: 3750.47
toa, 1 middleware: 7836.58
toa, 5 middleware: 7682.31
toa, 10 middleware: 7198.45
toa, 15 middleware: 7021.99
toa, 20 middleware: 6738.97
toa, 30 middleware: 6281.69
toa, 50 middleware: 5451.08
toa, 100 middleware: 4228.90 单独在 |
@fundon 刚蔡伟这边跑了下与我的结果也差不多。我的 osx 版本是 10.11.6,wrk v4.0.1 |
刚又单独跑了下,结果如下: 环境:
|
我加了一下对比,koa 和 toa 基本无差异。 BenchmarkResults
Scenes
Scripts
Server
DetailsHello World
wrk http://10.209.84.139:7002/ -d 10 -c 50 -t 8
Running 10s test @ http://10.209.84.139:7002/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.23ms 2.99ms 84.56ms 94.80%
Req/Sec 1.50k 278.02 2.65k 77.36%
119711 requests in 10.10s, 17.92MB read
Requests/sec: 11852.36
Transfer/sec: 1.77MB
wrk http://10.209.84.139:7003/ -d 10 -c 50 -t 8
Running 10s test @ http://10.209.84.139:7003/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 4.22ms 2.59ms 39.82ms 92.84%
Req/Sec 1.54k 181.11 2.83k 77.09%
122898 requests in 10.10s, 20.63MB read
Requests/sec: 12169.05
wrk http://10.209.84.139:7001/ -d 10 -c 50 -t 8
Running 10s test @ http://10.209.84.139:7001/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 5.73ms 2.77ms 63.12ms 84.02%
Req/Sec 1.07k 205.02 2.04k 69.40%
85700 requests in 10.10s, 24.11MB read
Requests/sec: 8485.16
Transfer/sec: 2.39MB nunjucks
wrk http://10.209.84.139:7002/ -d 10 -c 50 -t 8
Running 10s test @ http://10.209.84.139:7002/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 5.34ms 5.52ms 145.75ms 98.23%
Req/Sec 1.23k 239.23 2.48k 82.69%
97999 requests in 10.10s, 244.96MB read
Requests/sec: 9702.78
Transfer/sec: 24.25MB
wrk http://10.209.84.139:7003/ -d 10 -c 50 -t 8
Running 10s test @ http://10.209.84.139:7003/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 5.32ms 2.84ms 52.41ms 92.35%
Req/Sec 1.19k 134.30 2.73k 82.92%
95139 requests in 10.10s, 239.53MB read
Requests/sec: 9420.63
Transfer/sec: 23.72MB
wrk http://10.209.84.139:7001/ -d 10 -c 50 -t 8
Running 10s test @ http://10.209.84.139:7001/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 7.49ms 4.15ms 96.07ms 89.68%
Req/Sec 824.74 175.90 1.75k 67.79%
65988 requests in 10.10s, 173.63MB read
Requests/sec: 6534.15
Transfer/sec: 17.19MB |
@zensh 我再将3个框架按真实的来测,将 router 功能加上,给 koa 和 toa 的中间件数目加到跟 egg 自动的 security 数目一样的时候,基本就没什么差别了。 https://github.com/eggjs/egg/blob/2c82a46058d169ed384c4607eaaa9cc9bf3301ab/benchmarks/README.md |
@fengmk2 你的结果应该是具有代表性的。 只是为啥我这边的电脑跑出来 toa 总比 koa 高一截呢~ |
@fengmk2 toa 都 |
@zensh 我写错了,版本是 1.8.10 |
@zensh 你将 node_modules 删除了重新安装,再跑跑看?我们这边也跑了几台电脑,发现 koa 和 toa 的性能是持平的。 |
|
果然是很神奇,只能 cc @dead-horse 的8核 mbp 了。 |
神奇,why? 最新测试结果:
|
我的 mbp 显示是 toa 快的 ------- egg hello -------
Hello World, egg
Running 10s test @ http://127.0.0.1:7001/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 7.58ms 4.96ms 111.66ms 94.09%
Req/Sec 824.26 134.42 1.21k 75.90%
63356 requests in 10.00s, 17.82MB read
Requests/sec: 6334.79
Transfer/sec: 1.78MB
------- koa hello -------
Hello World, koa
Running 10s test @ http://127.0.0.1:7002/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 8.06ms 11.57ms 133.25ms 95.94%
Req/Sec 0.97k 298.72 1.50k 73.94%
74996 requests in 10.00s, 11.23MB read
Requests/sec: 7498.98
Transfer/sec: 1.12MB
------- toa hello -------
Hello World, toa
Running 10s test @ http://127.0.0.1:7003/
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 6.65ms 10.69ms 152.54ms 94.78%
Req/Sec 1.15k 342.72 1.95k 72.18%
87788 requests in 10.00s, 14.73MB read
Requests/sec: 8778.48
Transfer/sec: 1.47MB |
node 6.5.0, toa master 分支的代码 |
egg 的 benchmark 测试 koa 和 toa 差距不大,基本持平 |
三次一次 koa 高,一次 toa 高,一次持平 |
不纠结这种东西,不带业务逻辑的 benchmark 测来玩,没意思 |
@dead-horse 赞同,还是紧随业务才更有意义。 |
No description provided.