選擇語言
繁體中文
繁體中文 Traditional Chinese
简体中文
简体中文 Simplified Chinese
English
English English
日本語
日本語 Japanese
AI 助手

今日情報速問。不用選範圍,直接問今天值得看什麼。

完整分析

通知訊訊

暫無新訊訊

#SIG-114644183

2026-10-05 08:40

L1

摘要

[Python] wreq- Python :重写协程桥接后的性能提升

正文

[Python] wreq- Python :重写协程桥接后的性能提升

国庆闲来无事,跑了一下 wreq-python 和其他 Python HTTP 客户端的 HTTPS 性能基准,发现自己的结果不太理想,于是顺着火焰图查了一下瓶颈。

项目地址:
https://github.com/0x676e67/wreq-python

之前通过 PyO3 和 pyo3-async-runtimes 做异步桥接,性能其实已经不错,但在这套实现里,反复获取 GIL 带来的额外开销和争用,还是影响了性能。

后来请 Claude 帮忙分析火焰图和几个主要耗时点,再把自己的思路和 PyO3 原生协程的实现作为参考,重写并优化了这部分桥接逻辑。咱也用 AI ,分析这些确实能省不少精力。

优化方向是有预期的,不过最后提升这么大,还是有点意外。下面贴一下基准结果,其中 ry 和 pyreqwest 也都是 Rust reqwest HTTP 客户端的 Python 绑定。

HTTP/1.1 的基准看看就好。wreq/reqwest 的连接池默认不限制连接数,并发时会打开很多连接; ry/pyreqwest 的默认配置有没有类似限制,我不确定。所以这部分结果就图个乐。

HTTP/2 这部分则都是在单个连接上并发请求。

完整的基准测试数据与源码:
https://python.wreq.org/en/latest/benchmark/

via V2EX (author: 0x676e67)
[分享创造] 全功能文件管理器 Zexor :从“找文件”到“用文件”,重新思考 Windows 文件管理器

via V2EX (author: kiii)

指標

重要度80
可信度95
熱度15
瀏覽436
狀態已发布