jfinal與servlet性能對比測試

1.硬件環境:

物理總內存:16G

物理CPU個數:2

CPU內核數:1

2.軟件環境:

操作系統版本:CentOS release 6.9

jdk版本:jdk1.7.0_09

servlet版本:servlet-api 2.5

jfinal版本:jfinal-1.9

虛擬機配置:
JAVA_OPTS='-server -Xmx1024m -Xms1024m -Xss512k -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:+UseParNewG C -XX:+PrintGCDetails -Dcom.sun.management.jmxremote.port=8087 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'

tomcat配置:

<Connector executor="tomcatThreadPool" port="8829" enableLookups="false" protocol="org.apache.coyote.http11.Http11NioProtocol" acceptorThreadCount="4" selectorPool.maxSelectors="4" connectionTimeout="5000" redirectPort="8443" URIEncoding="utf-8"/>

3.測試數據:

從ling使用apache的ab工具發送get請求,請求數據128字節,響應數據1024字節,不解析響應數據

jfinal測試如下

併發數
總請求數
CPU
成功次數
失敗次數
請求速率
響應速率
平均響應時間(ms)
服務器狀態
101000070%~120%1000003595/s3600/s2.782可用
5050000120%~140%5000004577/s4600/s10.924可用
100100000120%~150%10000004833/s4800/s20.689可用
150150000130%~170%15000005034/s5100/s29.798可用
200200000130%~160%20000005106/s5200/s39.170可用
250250000130%~150%25000005539/s5500/s45.138可用

servlet測試如下

併發數
總請求數
CPU
成功次數
失敗次數
請求速率
響應速率
平均響應時間(ms)
服務器狀態
101000060%~120%1000003991/s4000/s2.505可用
5050000120%~140%5000004940/s5050/s9.895可用
100100000120%~150%10000005251/s5300/s19.046可用
150150000120%~150%1500000 5619/s5550/s26.697可用
200200000130%~150%20000005597/s5600/s35.735可用
250250000130%~160%25000005688/s5750/s43.948可用

結論:在併發數與請求量較少情況下,jfinal與servlet性能差距並不是很大;但隨着請求量與併發數增加,servlet對於jfinal性能上會好那麼一點,因此若按目前機器配置,單機5000/s以下請求,兩者沒什麼差異,jfinal更合適,畢竟開發效率較servlet高;5000/s以上權衡開發效率與性能再決定使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章