java与python web的ab压测
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java与python web的ab压测,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4984字,纯文字阅读大概需要8分钟。
内容图文
![java与python web的ab压测](/upload/InfoBanner/zyjiaocheng/647/650b1b62940840bd85891adfa24e48a7.jpg)
java与python web的ab测试
背景介绍
项目打算新做一个系统,项目组大部分熟悉python,所以考虑选用python来做web后台。python确实简单呀,这短短多少日子,我用python做了爬虫,做了代码生成工具,用了redash报表,airflow任务调度,python调用微信webapi实现机器人,巴拉巴拉巴拉巴拉。确实简单,会用很简单,但是不深入,而且我总觉得python脚本语言用来开发web应用,有点怎么说呢,不得劲,毕竟java web在脑中根深蒂固。而组织者一心喜欢python这样的脚本语言,快速开发。于是我简单的看了一下python的web框架,简单应用了fastapi与tornado。搭建了超简单的web应用。
代码
都是最最原始的,不做任何优化什么的,直接按官网入门例子。
fastapi
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_items():
return 'Hello world'
tornado
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
springboot
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author ling
* @date 2020/1/14
* @copyright http://lostmylife.top/
* @since
*/
@RestController
public class Controller {
@GetMapping("/")
public Object test(){
return "Hello world";
}
}
ab 压测
ab是apache自带的压力测试工具,以下的语法的意思是
-n 指定压力测试总共访问页面的次数,默认是1
-c 用于一次产生请求的并发数,默认是1
-r 指定接收到错误信息时不退出程序
fastapi
ab -n10000 -c 100 -r http://127.0.0.1:8000/
......
Server Software: uvicorn
Server Hostname: 127.0.0.1
Server Port: 8000
Document Path: /
Document Length: 13 bytes
Concurrency Level: 100
Time taken for tests: 3.333 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1380000 bytes
HTML transferred: 130000 bytes
Requests per second: 3000.31 [#/sec] (mean)
Time per request: 33.330 [ms] (mean)
Time per request: 0.333 [ms] (mean, across all concurrent requests)
Transfer rate: 404.34 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 2.4 1 86
Processing: 4 32 12.8 29 118
Waiting: 1 29 13.0 26 117
Total: 4 33 12.9 31 119
Percentage of the requests served within a certain time (ms)
50% 31
66% 31
75% 32
80% 33
90% 35
95% 45
98% 98
99% 108
100% 119 (longest request)
tornado
ab -n10000 -c 100 -r http://127.0.0.1:8888/
......
Server Software: TornadoServer/4.2
Server Hostname: 127.0.0.1
Server Port: 8888
Document Path: /
Document Length: 12 bytes
Concurrency Level: 100
Time taken for tests: 5.454 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 2050000 bytes
HTML transferred: 120000 bytes
Requests per second: 1833.56 [#/sec] (mean)
Time per request: 54.539 [ms] (mean)
Time per request: 0.545 [ms] (mean, across all concurrent requests)
Transfer rate: 367.07 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 20
Processing: 1 54 7.3 54 123
Waiting: 1 54 7.3 54 123
Total: 3 54 7.3 54 126
Percentage of the requests served within a certain time (ms)
50% 54
66% 56
75% 58
80% 58
90% 61
95% 64
98% 69
99% 70
100% 126 (longest request)
springboot
ab -n8000 -c 100 -r http://127.0.0.1:8080/
......
Server Software:
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 11 bytes
Concurrency Level: 100
Time taken for tests: 0.879 seconds
Complete requests: 8000
Failed requests: 0
Total transferred: 1152000 bytes
HTML transferred: 88000 bytes
Requests per second: 9103.55 [#/sec] (mean)
Time per request: 10.985 [ms] (mean)
Time per request: 0.110 [ms] (mean, across all concurrent requests)
Transfer rate: 1280.19 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 5 1.4 5 18
Processing: 1 6 1.9 6 20
Waiting: 1 5 1.7 5 18
Total: 4 11 2.0 11 25
Percentage of the requests served within a certain time (ms)
50% 11
66% 11
75% 12
80% 12
90% 13
95% 13
98% 15
99% 22
100% 25 (longest request)
结论
zhaoxilingchen 发布了8 篇原创文章 · 获赞 32 · 访问量 1651 私信 关注虽然python开发web应用没有java那么繁琐,无论是配置还是代码量开发效率,python都快一个级别,但是在对密集计算时,性能比不上java,大应用时,代码没有java那么一目了然,也是亏了java的web应用时结构性那么强,换一个程序员分分钟接手。当然这还是程序员个人的编码水平,换一个人写好的python代码,别人也能看的懂。
总的说,javaweb在性能上还是远胜python的
内容总结
以上是互联网集市为您收集整理的java与python web的ab压测全部内容,希望文章能够帮你解决java与python web的ab压测所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。