更新性能优化相关文档,详细说明 Python 3.14 JIT 编译器的使用方法和原理,补充与 Mypyc 的互补策略。同时修复命令管理器中帮助信息的输出方式,移除图片发送仅保留文本输出。 调整部署文档结构,明确两种性能优化方案(AOT 和 JIT)的配置方法和适用场景。完善架构文档中关于 JIT 的原理和启用方式说明。
1.8 KiB
1.8 KiB
骨架
Neobot是面向内部开发者的,我会开源,但是写的很烂。。。
1. 动力核心
Python 3.14 + JIT
镀铬酸钾创项目的时候用的 Python 3.14 3.14兼容JIT,那就这样吧
- 何原理: 运行时把热点代码编译成机器码(Just-In-Time)
- 何用途: 密集CPU运算能提升一些,尤其是插件里的循环和函数调用
- 怎么开: 启动时加
-X jit参数
Mypyc 编译 (AOT)
光 JIT 还不够。。核心模块(core/ws.py, core/managers/*.py)我编译成了C扩展
- 何原理: 因为这个项目有很多类型提示,然后我就编译成C库了。。。
- 何用途: WS和manager下边的模块都是机器码运行,或许会快一些。。。
异步 IO 模型
- Linux: uvloop
- Windows:IOCP
- 注:
winloop死了,会和面具打架。。。
- 注:
2. 连接模式
正向 WebSocket 模式
这是一种简单直接的模式
- 主动出击 (Client): Bot 是个客户端
- 好处: 你电脑能上网就行(实际上是因为没公网ip哈。。。)
graph LR
subgraph Local [你的电脑/服务器]
Bot[NEO Bot]
Browser[Playwright 页面池]
end
subgraph Remote [外部]
NapCat[NapCatQQ]
end
Bot -- "WebSocket (主动连接)" --> NapCat
Bot -- "内部调用" --> Browser
3. 资源管理
单例管理器
所有东西(指令、权限、浏览器、图片)都是全局独一份的。
- 随叫随到: 在哪都能直接
import - 绝对权威: 全局就一份数据
资源池化
别几把开多个实例。。。
- Browser Pool: 浏览器页面提前开好,用完洗干净放回去
- Connection Pool: Redis 和 HTTP 请求都用连接池