7.3 KiB
7.3 KiB
紧急修复:内存占用过高(6GB+)v3.11.14
📋 更新时间
2025-10-08
🚨 紧急问题
用户反馈
内存占用:6220MB(6.2GB)⚠️⚠️⚠️
开发者工具:开启
状态:内存持续增长
根本原因
主要原因
- 开发者工具开启 → 内存翻倍+
- 批量日志启用 → 控制台积累大量日志
- 高并发 + 长时间运行 → 内存泄漏累积
内存占用分解
基础内存: ~500MB
Token数据(700个):~300MB
日志缓存: ~2000MB(开发者工具)⚠️
控制台渲染: ~2000MB(日志过多)⚠️
其他开销: ~1000MB
------------------------------------
总计: ~6000MB(6GB)⚠️
✅ 已实施的紧急修复
1️⃣ 关闭批量日志
位置: src/stores/batchTaskStore.js 第17行
// 修改前
const ENABLE_BATCH_LOGS = true // 启用日志
// 修改后
const ENABLE_BATCH_LOGS = false // ⚠️ 关闭日志以减少内存
效果: 减少控制台日志输出,降低内存占用约2GB ⬇️
🚀 立即行动(重要!)
步骤1:关闭开发者工具(最重要!)
按 F12 关闭开发者工具
或点击 × 关闭控制台
⚠️ 开发者工具会让内存翻倍!
效果: 内存立即减少 2-3GB ⬇️
步骤2:刷新页面
1. 按 Ctrl + Shift + R(强制刷新)
2. 等待页面加载完成
3. 不要打开开发者工具!
效果: 清空内存,重新开始
步骤3:降低并发数
批量自动化页面
设置并发数:3-5(不要超过10!)
效果: 减少同时运行的WebSocket连接
步骤4:清理浏览器缓存(可选)
1. 按 Ctrl + Shift + Delete
2. 选择"缓存的图片和文件"
3. 清除
4. 重启浏览器
📊 内存占用对比
开发者工具影响
| 场景 | 控制台状态 | 内存占用 |
|---|---|---|
| 理想状态 | 关闭 | ~800MB ✅ |
| 日志关闭 | 开启 | ~1.5GB ⚠️ |
| 日志开启 | 开启 | ~6GB ❌ |
并发数影响
| 并发数 | 内存占用 | 推荐 |
|---|---|---|
| 3 | ~600MB | ✅ 最稳定 |
| 5 | ~800MB | ✅ 推荐 |
| 10 | ~1.2GB | ⚠️ 可接受 |
| 20 | ~2GB | ⚠️ 谨慎 |
| 50 | ~4GB | ❌ 不推荐 |
| 100 | ~6-8GB | ❌ 风险高 |
💡 正确的使用方式
✅ 推荐配置(稳定优先)
并发数: 5-10
开发者工具: 关闭(除非需要调试)
日志: 关闭(已默认关闭)
浏览器: 只开这一个标签页
预期内存: 800MB - 1.5GB ✅
⚠️ 调试配置(仅调试时)
并发数: 1-3
开发者工具: 开启
日志: 临时开启(需手动修改代码)
浏览器: 只开这一个标签页
预期内存: 1.5GB - 2.5GB ⚠️
⚠️ 调试完成后立即:
- 关闭开发者工具
- 刷新页面
- 恢复正常配置
❌ 不推荐配置(内存爆炸)
并发数: >20
开发者工具: 开启
日志: 开启
浏览器: 多个标签页
结果: 内存 >6GB,浏览器崩溃 ❌
🔧 如何安全调试
方法1:只查看错误日志
// 不启用批量日志,只看error和warn
console.error() ✅ 始终显示
console.warn() ✅ 始终显示
console.log() ❌ 被batchLog()过滤
优点: 内存占用低,能看到关键错误
方法2:短时开启调试
1. 只选择1个token测试
2. 并发设为1
3. 临时启用日志(修改代码)
4. 开启开发者工具
5. 执行并观察日志
6. 测试完立即关闭工具
7. 恢复配置
优点: 可以看到详细日志,但不会长时间占用内存
方法3:分批调试
调试阶段:
- 1个token,开工具,看日志
- 找到问题,修复
正式运行:
- 关闭工具,关闭日志
- 10+个token批量运行
📈 内存监控建议
Windows任务管理器
1. 按 Ctrl + Shift + Esc 打开任务管理器
2. 找到浏览器进程(Chrome/Edge)
3. 观察"内存"列
⚠️ 如果内存 >3GB:
- 立即关闭开发者工具
- 降低并发数
- 刷新页面
浏览器内存监控
1. 按 Shift + Esc(浏览器任务管理器)
2. 找到当前标签页
3. 观察内存占用
⚠️ 如果持续增长不释放:
- 可能存在内存泄漏
- 重启浏览器
🎯 优化后的预期效果
正常运行(关闭工具)
| Token数 | 并发 | 内存峰值 | 执行时间 |
|---|---|---|---|
| 10 | 5 | ~800MB | ~2分钟 |
| 50 | 10 | ~1.2GB | ~8分钟 |
| 100 | 10 | ~1.5GB | ~15分钟 |
| 700 | 10 | ~1.8GB | ~70分钟(7批) |
调试模式(开启工具)
| Token数 | 并发 | 内存峰值 | 建议 |
|---|---|---|---|
| 1 | 1 | ~800MB | ✅ 可以调试 |
| 5 | 3 | ~1.5GB | ⚠️ 短时调试 |
| 10 | 5 | ~2.5GB | ⚠️ 不建议 |
| 50+ | 任意 | >4GB | ❌ 禁止 |
⚠️ 重要警告
禁止操作
❌ 长时间开启开发者工具运行大批量任务
❌ 并发数超过20且开启工具
❌ 启用日志且开启工具且高并发
❌ 同时打开多个浏览器标签页
后果
内存爆炸 → 浏览器卡死 → 数据丢失 → 重启浏览器
📝 检查清单
运行前检查
[ ] 开发者工具已关闭
[ ] 并发数 ≤ 10
[ ] 日志已关闭(默认)
[ ] 其他标签页已关闭
[ ] 可用内存 >2GB
运行中监控
[ ] 任务管理器:浏览器内存 <2GB
[ ] 页面响应:流畅,无卡顿
[ ] 成功率:>80%
异常处理
如果内存 >3GB:
[ ] 立即关闭开发者工具
[ ] 暂停批量任务
[ ] 刷新页面释放内存
如果浏览器卡死:
[ ] 强制结束进程
[ ] 重启浏览器
[ ] 降低并发数再试
🔄 版本历史
v3.11.14 (2025-10-08) - 紧急修复
- 🐛 修复:内存占用过高(6GB+)
- ⚡ 关闭:批量日志默认关闭
- 📝 说明:添加内存管理指南
v3.11.13 (2025-10-08)
- ⚡ 增加:所有任务超时时间
v3.11.12 (2025-10-08)
- 🐛 修复:任务全部失败
- ⚡ 放宽:连接和任务间隔
🎉 总结
内存占用6GB的根本原因:
- ⚠️ 开发者工具开启 - 导致内存翻倍(2-3GB额外占用)
- ⚠️ 批量日志启用 - 控制台积累大量日志(2GB额外占用)
- ⚠️ 高并发运行 - 大量WebSocket连接(1-2GB基础占用)
解决方案
✅ 关闭开发者工具 - 立即减少2-3GB ✅ 关闭批量日志 - 减少2GB日志占用 ✅ 降低并发数 - 减少基础内存占用 ✅ 刷新页面 - 清空内存重新开始
正确使用方式
关闭工具 + 关闭日志 + 并发5-10 = 内存800MB-1.5GB ✅
开启工具 + 开启日志 + 高并发 = 内存6GB+ ❌
立即执行以下操作:
- ✅ 按F12关闭开发者工具(最重要!)
- ✅ 按Ctrl+Shift+R刷新页面
- ✅ 设置并发数为5-10
- ✅ 重新测试,观察内存
预期内存:800MB - 1.5GB ✅
如有问题,请告诉我:
- 关闭工具后的内存占用
- 是否仍有异常
- 任务执行是否正常
我会继续协助优化!🚀