继续昨天的文章,终于用pypy跑起了Django和MySQL,今天就把blog用pypy在本地跑一下试试。然后顺便用ab测一下,看看效果。
先介绍下我的环境:
软件环境就是,用gunicorn通过wsgi的方式启动Django1.5.1.
只是测试了并发100, 10000次访问的情况。得到的结果是:由pypy运行的gunicorn 平均每秒处理13.32个请求;通过python2.7.3执行的gunicorn,平均每秒处理11.09 个请求。
这个差别并不大,不过关于内存占用的差别倒是挺出乎意料的,基于pypy运行的gunicorn占了300M多的内存,而后者,我之前也说过,30M左右。这个差异还是挺大的。
有兴趣的可以自己在本地跑一个Django项目,然后测试对比一下。
最后是完整的记录:
Server Software: gunicorn/0.17.4
Server Hostname: 127.0.0.1
Server Port: 8888
Document Path: /
Document Length: 36482 bytes
Concurrency Level: 100
Time taken for tests: 901.496 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 366790000 bytes
HTML transferred: 364820000 bytes
Requests per second: 11.09 [#/sec] (mean)
Time per request: 9014.955 [ms] (mean)
Time per request: 90.150 [ms] (mean, across all concurrent requests)
Transfer rate: 397.33 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.7 0 10
Processing: 686 8981 2641.9 7934 19722
Waiting: 686 8980 2641.8 7933 19721
Total: 696 8981 2641.8 7935 19722
Percentage of the requests served within a certain time (ms)
50% 7935
66% 9416
75% 10341
80% 10836
90% 12515
95% 14492
98% 17245
99% 18081
100% 19722 (longest request)
Server Software: gunicorn/0.17.4
Server Hostname: 127.0.0.1
Server Port: 8000
Document Path: /
Document Length: 36482 bytes
Concurrency Level: 100
Time taken for tests: 750.585 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 366790000 bytes
HTML transferred: 364820000 bytes
Requests per second: 13.32 [#/sec] (mean)
Time per request: 7505.848 [ms] (mean)
Time per request: 75.058 [ms] (mean, across all concurrent requests)
Transfer rate: 477.22 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.7 0 10
Processing: 444 7466 2179.8 6554 17179
Waiting: 443 7466 2179.8 6554 17178
Total: 454 7466 2179.7 6554 17179
Percentage of the requests served within a certain time (ms)
50% 6554
66% 7239
75% 8438
80% 9181
90% 10498
95% 12012
98% 14026
99% 15469
100% 17179 (longest request)
update: pypy的成员alex写了片关于pypy测试的文章,有兴趣的可以了解下,英文的: http://alexgaynor.net/2013/jul/15/your-tests-are-not-benchmark/