先上结论:Trae一如既往的好用!yan的repo:yan:基于 Python 生态的中文函数式编程语言项目 - AtomGit | GitCode
先问Dumate问题
在Windows10 用Trae 运行、调试yan这个中文编程项目的时候,我发现有些python子进程内存占用超过32G,导致系统内存跑超到100% 。是否项目存在内存泄漏的隐患?我应该怎么让Trae去处理呢?请给我发给Trae的指令
把Dumate的回答发送给Trae
Trae圆满完成任务!
任务完成!内存泄漏修复成功
我已经系统化地诊断并修复了严重的内存泄漏问题。以下是修复总结:
📊 诊断结果
发现了三个主要的内存泄漏问题:
- 全局模块缓存泄漏 : _module_system 作为全局变量,缓存无限增长
- 持久化执行环境 : _global_env 变量在多次执行间保留
- Playground服务器问题 :在同一进程中反复执行代码
✅ 关键修复
main.py :
- 每次运行代码创建独立的 ModuleSystem 实例
- 添加 clear_cache 参数,在 finally 块中清理缓存
- 新增内存重置工具函数
module_system.py :
- 添加 LRU(最近最少使用)缓存策略
- 限制最大缓存大小为 100 个模块
- 实现 clear_cache() 方法手动清理
playground/server.py :
- 完全重写为使用独立进程执行代码
- 每个请求都启动新的 Python 子进程
- 执行完成后进程自动退出,完全避免内存泄漏
- 添加 30 秒超时保护
新增 memory_debug.py :
- 内存诊断和调试工具
- 实时内存使用检查
- 修复内存泄漏的工具函数
🧪 测试验证
- ✅ 所有 74 个测试用例通过
- ✅ 内存使用测试验证:运行多次后内存保持稳定(20.08 MB → 20.13 MB 稳定)
- ✅ 代码已推送到 GitCode
📝 Git 提交
commit 862c28f 修复严重内存泄漏问题现在,即使长时间运行 Playground 或多次执行代码,内存也不会再无限增长了!