SHA256
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 注释里。