Skip to content

fix:更正默认值,避免意料之外的内存占用#1627

Merged
SengokuCola merged 1 commit into
Mai-with-u:devfrom
A-Dawn:feature/a-memorix-disabled-by-default
May 4, 2026
Merged

fix:更正默认值,避免意料之外的内存占用#1627
SengokuCola merged 1 commit into
Mai-with-u:devfrom
A-Dawn:feature/a-memorix-disabled-by-default

Conversation

@A-Dawn
Copy link
Copy Markdown
Collaborator

@A-Dawn A-Dawn commented May 4, 2026

用 os.environ.setdefault 将原生库线程数(OMP_NUM_THREADS、OPENBLAS_NUM_THREADS、MKL_NUM_THREADS、NUMEXPR_NUM_THREADS)的默认值设置为 "1"。这样可以确保导入的代码默认不会过度占用 CPU 线程(以及巨量内存)

  • ✅ 接受:与main直接相关的Bug修复:提交到dev分支
  • 新增功能类pr需要经过issue提前讨论,否则不会被合并
  • 🌐 i18n 提醒:除 bootstrap 或紧急修复外,请不要把非 zh-CN 目标翻译作为常规 GitHub 编辑面;常规翻译以 Crowdin -> l10n_* PR 回流为准,详见 docs/i18n.md

请填写以下内容

(删除掉中括号内的空格,并替换为小写的x

    • main 分支 禁止修改,请确认本次提交的分支 不是 main 分支
    • 我确认我阅读了贡献指南
    • 本次更新类型为:BUG修复
    • 本次更新类型为:功能新增
    • 本次更新是否经过测试
    • 如果本次修改涉及 src/A_memorix,我确认已阅读 src/A_memorix/MODIFICATION_POLICY.md,不涉及则无需勾选
  1. 请填写破坏性更新的具体内容(如有):
  2. 请简要说明本次更新的内容和目的:详见commit

其他信息

  • 关联 Issue:Close #
  • 截图/GIF
  • 附加信息:

Summary by CodeRabbit

发布说明

  • Chores
    • 优化了系统线程管理相关的默认环境变量配置,以改进应用性能和资源利用效率。

用 os.environ.setdefault 将原生库线程数(OMP_NUM_THREADS、OPENBLAS_NUM_THREADS、MKL_NUM_THREADS、NUMEXPR_NUM_THREADS)的默认值设置为 "1"。这样可以确保导入的代码默认不会过度占用 CPU 线程(以及巨量内存)
Copilot AI review requested due to automatic review settings May 4, 2026 09:51
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

Caution

Review failed

Pull request was closed or merged during review

演练概述

该模块在导入时通过 os.environ.setdefault 为原生线程相关的环境变量(OMP_NUM_THREADSOPENBLAS_NUM_THREADSMKL_NUM_THREADSNUMEXPR_NUM_THREADS)设置默认限制,并启用了 from __future__ import annotations 的类型行为。

变更

环境变量默认值初始化

层级 / 文件 摘要
导入与配置
src/__init__.py
添加 from __future__ import annotations、导入 os、定义 _NATIVE_THREAD_ENV_DEFAULTS 常量,在模块导入时迭代该映射并通过 os.environ.setdefault() 为四个线程环境变量设置默认值。

预计代码审查工作量

🎯 1 (平凡) | ⏱️ ~3 分钟

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed PR标题清晰简洁,准确反映了本次更改的核心目的:通过设置默认值来避免意外的内存占用。
Description check ✅ Passed PR描述包含了必要的信息,说明了更新内容和目的,并正确填写了模板中的检查项和更新类型。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread src/__init__.py
@@ -0,0 +1,14 @@
from __future__ import annotations

Comment thread src/__init__.py
Comment on lines +6 to +14
_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)
@SengokuCola SengokuCola merged commit 3d47cd8 into Mai-with-u:dev May 4, 2026
6 of 8 checks passed
@github-project-automation github-project-automation Bot moved this to 已完成 in MaiM to the GATE May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants