ProxyPin 中文文档 下载 App

ProxyPin 性能优化 过滤与存储最佳实践

域名过滤优化

域名过滤是性能影响最大的配置之一。

精确优先

# ❌ 太宽泛:所有流量都拦截
.*

# ❌ 还是太宽:只拦 myapp.com 但漏了所有子域
myapp\.com

# ✅ 精确:只拦自己关心的 API 子域
api\.myapp\.com|cdn\.myapp\.com

正则越精确,ProxyPin 处理的请求越少,CPU 和内存压力越低。

顺序影响性能

多条过滤规则时,高频规则放在前面。正则引擎从上往下匹配,先命中就跳过后续。

历史记录管理

设置合理的上限

ProxyPin 自动淘汰最旧的历史记录。建议根据实际使用频率调:

使用场景推荐上限
日常开发调试5000 条
长时间抓包测试20000 条
CI/CD 流水线抓完即导出 HAR → 清空

定期清理

长时间抓包后,磁盘上的历史文件会越来越大。定期导出重要 HAR 后清空历史。

脚本性能

JS 脚本虽然灵活,但每条请求都会执行——脚本里做重计算会影响整体吞吐。

脚本性能原则

反例

// ❌ 每次请求都解析整个响应体
function onResponse(context, response) {
  let data = JSON.parse(response.body);  // 重操作
  let result = deepSearch(data, target);  // 深层递归
  // ...
}

正例

// ✅ 只在匹配的 URL 上解析
function onResponse(context, response) {
  if (response.url.includes('/api/user')) {
    let data = JSON.parse(response.body);
    // ... 只处理这个特定响应
  }
  return response;
}

协议优化

开启 HTTP/2

HTTP/2 多路复用减少 TCP 连接数 → 降低系统开销。ProxyPin v1.1.9+ 默认支持。

自动解压开启

zstd / Brotli 解压虽然有 CPU 开销,但解压后的明文内容让调试效率提升远大于这点开销。建议默认开启。

内存管理

ProxyPin 长时间运行时内存会逐渐增长。如果发现内存占用异常:

  1. 检查历史记录上限是否设得过大
  2. 检查脚本是否有内存泄漏(context.storage 里存了大对象没清理)
  3. 定期重启 ProxyPin(历史记录会保留)