更新性能优化相关文档,详细说明 Python 3.14 JIT 编译器的使用方法和原理,补充与 Mypyc 的互补策略。同时修复命令管理器中帮助信息的输出方式,移除图片发送仅保留文本输出。 调整部署文档结构,明确两种性能优化方案(AOT 和 JIT)的配置方法和适用场景。完善架构文档中关于 JIT 的原理和启用方式说明。
57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# 骨架
|
||
|
||
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哈。。。)
|
||
|
||
```mermaid
|
||
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 请求都用连接池
|