Python 3.13 免费线程,脚本能上、接口先别
3.13 可以关掉 GIL。我拿农历批量回算试过,CPU 能吃满几核。放到给小程序用的接口上,我还是没开。
脚本和接口不是一回事
离线任务没有连接池、没有扩展假设「同一时刻只有一个线程碰这块内存」。免费线程把这些假设撕开。NumPy、部分 MySQL 驱动要核对有没有官方说明。
python -X gil=0 batch_solar.py
# 看加速比,也看结果是不是仍和单线程一致
我的回算脚本加速大约 2.4 倍(四核,不是四倍)。校验用同一批出生时间,逐条对节气和真太阳时。
接口为什么不动
- uwsgi / gunicorn worker 模型已经靠进程隔离,收益不明显。
- C 扩展一出问题就是偶发脏数据,比慢更难查。
- 排盘接口流量吃得住,没有必要换执行模型。
新运行时先给批处理。对用户的路径,稳比快优先。