欲知hi-nginx-java的併發效能,用jmeter進行測試便知一二。
設定使用者數為100000,迴圈次數為100,ramp-up perio為2:
請求地址為http://localhost/test.java。該地址對應的servlet如下:
1 private static hi.route r = hi.route.get_instance(); 2 3 public jdemo() { 4 jdemo.r.get("^/(hello|test)/?$", (hi.request req, hi.response res, Matcher m) -> { 5 this.do_hello(req, res); 6 }); 7 } 8 9 public void handler(hi.request req, hi.response res) { 10 jdemo.r.run(req, res); 11 } 12 13 private void do_hello(hi.request req, hi.response res) { 14 res.set_content_type("text/plain;charset=UTF-8"); 15 res.set_cookie("test-k", "test-v", "Max-Age=3; Path=/"); 16 res.status = 200; 17 res.content = "hello,world"; 18 }
具體實現可參考:https://github.com/webcpp/jdemo/blob/master/hi/jdemo.java
使用jmeter的命令列模式進行測試。結果如下圖所示:
此次測試在一臺2核4執行緒4g記憶體筆記本上完成,hi-nginx開4個工作程式,最終消耗記憶體為每工作程式68mb至101mb,併發數越大,記憶體消耗越小。
以上,足證hi-nginx-java架構可提供更優效能的java web開發方法。