Files
xyzw_web_helper/MD说明文件夹/紧急修复-内存占用过高6GB v3.11.14.md
2025-10-17 20:56:50 +08:00

370 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 紧急修复内存占用过高6GB+v3.11.14
## 📋 更新时间
2025-10-08
## 🚨 紧急问题
### 用户反馈
```
内存占用6220MB6.2GB)⚠️⚠️⚠️
开发者工具:开启
状态:内存持续增长
```
### 根本原因
#### 主要原因
1. **开发者工具开启** → 内存翻倍+
2. **批量日志启用** → 控制台积累大量日志
3. **高并发 + 长时间运行** → 内存泄漏累积
#### 内存占用分解
```
基础内存: ~500MB
Token数据700个~300MB
日志缓存: ~2000MB开发者工具
控制台渲染: ~2000MB日志过多
其他开销: ~1000MB
------------------------------------
总计: ~6000MB6GB
```
---
## ✅ 已实施的紧急修复
### 1⃣ 关闭批量日志
**位置:** `src/stores/batchTaskStore.js` 第17行
```javascript
// 修改前
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 ⚠️
**⚠️ 调试完成后立即:**
1. 关闭开发者工具
2. 刷新页面
3. 恢复正常配置
---
### ❌ 不推荐配置(内存爆炸)
```
并发数: >20
开发者工具: 开启
日志: 开启
浏览器: 多个标签页
```
**结果:** 内存 >6GB浏览器崩溃 ❌
---
## 🔧 如何安全调试
### 方法1只查看错误日志
```javascript
// 不启用批量日志只看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的根本原因
1. ⚠️ **开发者工具开启** - 导致内存翻倍2-3GB额外占用
2. ⚠️ **批量日志启用** - 控制台积累大量日志2GB额外占用
3. ⚠️ **高并发运行** - 大量WebSocket连接1-2GB基础占用
### 解决方案
**关闭开发者工具** - 立即减少2-3GB
**关闭批量日志** - 减少2GB日志占用
**降低并发数** - 减少基础内存占用
**刷新页面** - 清空内存重新开始
### 正确使用方式
```
关闭工具 + 关闭日志 + 并发5-10 = 内存800MB-1.5GB ✅
开启工具 + 开启日志 + 高并发 = 内存6GB+ ❌
```
---
**立即执行以下操作:**
1.**按F12关闭开发者工具**(最重要!)
2.**按Ctrl+Shift+R刷新页面**
3.**设置并发数为5-10**
4.**重新测试,观察内存**
预期内存800MB - 1.5GB ✅
---
**如有问题,请告诉我:**
1. 关闭工具后的内存占用
2. 是否仍有异常
3. 任务执行是否正常
我会继续协助优化!🚀