WhosKPW3 - xilp/muapub GitHub Wiki
-
不支持服务重启的TPS排行
- 高鹏 14413 Go
- 大坤哥 14066 Go
- 曹司机 13944 C+Libevent (可能有BUG)
- 曹司机 13764 C+LibMicroHttpd (可能有BUG)
- 邵真语 13310 Go
- 阿健 8846 Node.js
- 刘聪 6439 Node.js
- 刘聪 2098 Python
- 刘聪 1299 Python+Gevent
-
支持服务重启的TPS排行
- 高鹏 14413 Go
- 大坤哥 13946 Go
- 邵真语 8876 Go+Redis
接口方法1: 请求:
http://host/set?key=<key>&value=<value>
(body为空)
期望返回(body):
OK
接口方法2: 请求:
http://host/get?key=<key>
(body为空)
期望返回(body)
value=<value>
其中key和value为不包含空格、等号的字符串,长度为1-257字节随机分布
- MUA全公司含实习生有参与权
- 奖品为KPW3一台
- 性能测试最高者获胜:服务支持重启、不支持重启的两种情况,最高TPS的得一分,两分不是同一个人获得的情况,再出一题决胜
- 各人测试程序互测得出TPS,如果各人测试程序结果排名不一样,以LiuCong的测试程序为准
- 读写比例1:1
- 不限框架、第三方库、开发语言,但支持服务重启的测试里,第三方模块/服务需要同时重启
- 期限:由LiuCong裁定
# run: python kpw3.py
from wsgiref.simple_server import make_server
from urllib2 import urlparse
data = {}
def serve(env, start_response):
path = env['PATH_INFO']
args = urlparse.parse_qs(env['QUERY_STRING'])
key = args['key'][0]
start_response('200 OK', [('Content-type', 'text/plain')])
if path == '/get':
return data[key]
if path == '/set':
value = args['value'][0]
data[key] = value
return ['ok']
return ['unknown error']
make_server('', 8000, serve).serve_forever()
// run: node kpw3.js
var http = require('http')
var urlp = require("url");
var qs = require('querystring');
var data = {}
var server = http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
var url = urlp.parse(request.url);
var query = qs.parse(url.query);
if (url.pathname == '/get') {
response.end('value=' + data[query['key']]);
} else if (url.pathname == '/set') {
data[query['key']] = query['value'];
response.end('ok');
}
});
server.listen(8000);
# 写测试
curl 'localhost:8000/set?key=abc&value=444'
# 读测试
curl 'localhost:8000/get?key=abc'