Files
ashare-data/benchmarks/README.md
T
2026-05-17 15:51:10 +08:00

1.3 KiB

benchmarks 目录

存放性能压测脚本。不参与单元测试,不在 CI 跑,需要真实 MySQL 和外网。

目的

验证 fetch.workers 在 BaoStock 全局锁 + 新浪/腾讯/东方财富 HTTP 限流并存的情况下, 最优档位是多少。

使用

# 先确保已抓过股票列表
python -m src.main --stock-info

# 跑默认压测:200 只股票 × 近 30 天,依次跑 workers=1/2/4/8
python -m benchmarks.bench_daily

# 自定义参数
python -m benchmarks.bench_daily --codes 500 --days 60 --workers 1,2,4 --source baostock

输出

每档 workers 跑完会输出:

==== workers=4 完成: 87.3s ====

最后给出对照表与相对加速比:

workers=1  324.5s  speedup=1.00x
workers=2  178.1s  speedup=1.82x
workers=4   87.3s  speedup=3.72x
workers=8   86.9s  speedup=3.74x

注意

  • 脚本会真实命中数据源,避免在交易时段或限流敏感时段跑;
  • 同一缺口被前一档抓走后,后续档次会出现「数据已完整」从而耗时被低估;为避免这点, 建议每档之间用 --days 切到不同窗口,或预先准备一段干净缺口。

当前 TODO

详见 ../TODO.md P2-#4:用本脚本跑出实测数据后,把推荐 workers 写到 config.example.yaml 注释里。