# 紧急修复：内存占用过高（6GB+）v3.11.14

## 📋 更新时间
2025-10-08

## 🚨 紧急问题

### 用户反馈
```
内存占用：6220MB（6.2GB）⚠️⚠️⚠️
开发者工具：开启
状态：内存持续增长
```

### 根本原因

#### 主要原因
1. **开发者工具开启** → 内存翻倍+
2. **批量日志启用** → 控制台积累大量日志
3. **高并发 + 长时间运行** → 内存泄漏累积

#### 内存占用分解
```
基础内存：       ~500MB
Token数据（700个）：~300MB
日志缓存：       ~2000MB（开发者工具）⚠️
控制台渲染：     ~2000MB（日志过多）⚠️
其他开销：       ~1000MB
------------------------------------
总计：           ~6000MB（6GB）⚠️
```

---

## ✅ 已实施的紧急修复

### 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. 任务执行是否正常

我会继续协助优化！🚀


