This commit is contained in:
2025-10-17 20:56:50 +08:00
commit 90094ccd5a
342 changed files with 144988 additions and 0 deletions

View File

@@ -0,0 +1,369 @@
# 紧急修复内存占用过高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. 任务执行是否正常
我会继续协助优化!🚀