fix:更正默认值,避免意料之外的内存占用#1627
Conversation
用 os.environ.setdefault 将原生库线程数(OMP_NUM_THREADS、OPENBLAS_NUM_THREADS、MKL_NUM_THREADS、NUMEXPR_NUM_THREADS)的默认值设置为 "1"。这样可以确保导入的代码默认不会过度占用 CPU 线程(以及巨量内存)
|
Caution Review failedPull request was closed or merged during review 演练概述该模块在导入时通过 变更环境变量默认值初始化
预计代码审查工作量🎯 1 (平凡) | ⏱️ ~3 分钟 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.Comment |
There was a problem hiding this comment.
Pull request overview
该 PR 旨在通过为常见数值计算原生库设置线程数环境变量默认值(若用户未显式设置则默认为 "1"),降低在运行 MaiBot 时因 OpenMP / BLAS / MKL / NumExpr 默认多线程导致的意外 CPU 线程占用与内存占用风险。
Changes:
- 新增
src/__init__.py,在导入src包时用os.environ.setdefault设置OMP_NUM_THREADS等变量默认值为"1"。 - 通过“仅在未设置时写入”的方式,允许用户在启动前自行覆盖这些环境变量。
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -0,0 +1,14 @@ | |||
| from __future__ import annotations | |||
|
|
|||
| _NATIVE_THREAD_ENV_DEFAULTS = { | ||
| "OMP_NUM_THREADS": "1", | ||
| "OPENBLAS_NUM_THREADS": "1", | ||
| "MKL_NUM_THREADS": "1", | ||
| "NUMEXPR_NUM_THREADS": "1", | ||
| } | ||
|
|
||
| for _name, _value in _NATIVE_THREAD_ENV_DEFAULTS.items(): | ||
| os.environ.setdefault(_name, _value) |
用 os.environ.setdefault 将原生库线程数(OMP_NUM_THREADS、OPENBLAS_NUM_THREADS、MKL_NUM_THREADS、NUMEXPR_NUM_THREADS)的默认值设置为 "1"。这样可以确保导入的代码默认不会过度占用 CPU 线程(以及巨量内存)
zh-CN目标翻译作为常规 GitHub 编辑面;常规翻译以 Crowdin ->l10n_*PR 回流为准,详见docs/i18n.md请填写以下内容
(删除掉中括号内的空格,并替换为小写的x)
main分支 禁止修改,请确认本次提交的分支 不是main分支src/A_memorix,我确认已阅读src/A_memorix/MODIFICATION_POLICY.md,不涉及则无需勾选其他信息
Summary by CodeRabbit
发布说明