python高性能框架-japronto浅测

2024-08-29 10:38

本文主要是介绍python高性能框架-japronto浅测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:很久之前就听说python有个web框架可以媲美go、nodejs等高性能语言,周末有空特地看了下。

--------
背景了解:
japronto 是一个全新的,为 微服务 量身打造的python微框架,关于它的详细介绍可以看转载的这篇文章《用 Python 实现每秒处理 120 万次 HTTP 请求》 http://blog.csdn.net/u013128262/article/details/77415968 ,作者自己做了较详细的介绍。

官方英文介绍: Screaming-fast Python 3.5+ web micro-framework integrated with pipelining HTTP server based on uvloop and picohttpparser.
github地址: https://github.com/squeaky-pl/japronto

安装
机器:腾讯云香港机房1核1G1M(最便宜那种)
操作系统:ubuntu 16.04
python版本:python 3.5
sudo apt install python3-pip 安装python3的pip
pip 安装:
pip3 install -i http://mirrors.aliyun.com/pypi/simple/ japronto --trusted-host mirrors.aliyun.com
安装失败,连续换了几个源都找不到这个框架,遂放弃直接pip安装的思路。
源码安装:
git clone https://github.com/squeaky-pl/japronto
python setup.py install 即可。

hello world!:
japronto用起来和flask有点像,一个基础的hello world如下:
from japronto import Applicationdef hello(request):return request.Response(text='Hello world!')app = Application()
app.router.add_route('/', hello)
app.run(debug=True)

python3 hello.py 直接启动。
curl 127.0.0.1:8080 可以看到服务起来了。

压测一下:
这里我们选择wrk。
安装非常简单:
git clone https://github.com/wg/wrk. git
进入目录,直接make即可生成二进制可执行文件。
来一发小的压测:
./wrk -t10 -d20s -c10000 http://127.0.0.1:8080


这种最基础的机器还能达到8k qps
持续压20min看看:
./wrk -t10 -d20m -c10000 http://127.0.0.1:8080


也是能稳定到7k qps。

因为我的云主机比较差,7k qps的意义看不出来,我们这里就拿flask做个对比
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello_world():return 'Hello World!'if __name__ == '__main__':app.run()


逻辑几乎一模一样,最简单的那种,看看我们的效果如何:


仅有550+ qps。

-----------------------------------
japronto现在没有一家公司在现网大规模使用,但是其高性能的表现是非常不俗的,这得益于其核心模块都是用c实现的。




这篇关于python高性能框架-japronto浅测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117622

相关文章

Python中edge-tts实现便捷语音合成

《Python中edge-tts实现便捷语音合成》edge-tts是一个功能强大的Python库,支持多种语言和声音选项,本文主要介绍了Python中edge-tts实现便捷语音合成,具有一定的参考价... 目录安装与环境设置文本转语音查找音色更改语音参数生成音频与字幕总结edge-tts 是一个功能强大的

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

Python中Flask模板的使用与高级技巧详解

《Python中Flask模板的使用与高级技巧详解》在Web开发中,直接将HTML代码写在Python文件中会导致诸多问题,Flask内置了Jinja2模板引擎,完美解决了这些问题,下面我们就来看看F... 目录一、模板渲染基础1.1 为什么需要模板引擎1.2 第一个模板渲染示例1.3 模板渲染原理二、模板

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.