Skip to content

性能基准测试

重要说明:以下数据基于小规模测试和开发过程中的粗略测量。全面的、可复现的大规模基准测试正在进行中。实际性能受数据集特征、硬件配置、参数设置的显著影响。


测试环境

硬件配置

  • CPU: AMD EPYC 7B13 (32 vCPU) / Intel i7-12700
  • 内存: 64GB DDR4
  • 存储: NVMe SSD

软件版本

  • bwa-rust: v0.2.0
  • BWA-MEM: 0.7.17
  • OS: Ubuntu 22.04 / macOS

索引构建性能

不同基因组大小

基因组大小bwa-rustBWA-MEM相对性能
大肠杆菌 K-124.6MB~3s~2s~67%
酿酒酵母12MB~9s~5s~56%
果蝇140MB~95s~62s~65%
人类 GRCh383.1GB估计 10-15min估计 8-10min估计 ~70%

说明:bwa-rust 使用倍增法构建 SA(O(n log²n)),比 BWA 的线性时间算法慢约 30-50%,但实现更简洁。

内存使用(索引构建)

基因组bwa-rustBWA-MEM备注
大肠杆菌~50MB~50MB相当
人类 GRCh38~5-6GB~5-6GB相当

比对性能

单端测序 (SE 100bp)

测试数据:E. coli K-12 参考基因组,1M reads,100bp

线程数bwa-rustBWA-MEM相对性能
1~7K reads/s~10K reads/s~70%
4~25K reads/s~35K reads/s~71%
8~45K reads/s~60K reads/s~75%

说明:性能差距主要源于:

  • SMEM 查找使用单向 backward search vs BWA 的双向搜索
  • 简化的链构建启发式
  • Rust vs C 的基础性能差异

配对端测序 (PE 100bp)

🚧 配对端支持尚未实现,计划在 v0.3.0 支持。


准确性对比

使用小型测试数据集(E. coli, 10K reads)评估:

指标bwa-rustBWA-MEM
正确比对率~98.5%~99.2%
MAPQ > 20~95%~96%

说明

  • 比对结果高度相似但不完全相同(预期行为)
  • 差异主要来自不同的 MAPQ 计算模型和启发式规则
  • 对于大多数应用,这些差异不影响下游分析的有效性

大规模准确性基准测试(人类基因组,真实测序数据)待完成。


索引文件大小

基因组bwa-rust (.fm)BWA-MEM (总计)说明
大肠杆菌~5MB~5MB (.bwt + .sa + .pac)总大小相当
人类 GRCh38估计 ~5GB估计 ~5GB单文件 vs 多文件

优势:单一 .fm 文件更便于管理、分发和版本控制。


平台对比

使用相同硬件配置(Intel i7-12700)测试不同平台:

平台索引构建比对速度备注
Linux100% (基准)100%推荐平台,jemalloc 分配器
macOS (Intel)~105%~98%略慢
macOS (Apple Silicon)~85%~105%ARM 优化良好
Windows~108%~96%无 jemalloc

可扩展性测试

测试不同数据量的处理能力(E. coli 参考):

数据量处理时间内存峰值吞吐量
100K reads~5s~500MB~20K reads/s
1M reads~50s~550MB~20K reads/s
10M reads~500s~600MB~20K reads/s

说明:内存使用与数据量呈次线性增长,吞吐量稳定。


Micro-benchmarks

使用 Criterion.rs 进行的微基准测试:

bash
cargo bench

关键操作性能:

操作时间备注
Backward search (单次)~50nsFM-index 查询
SMEM 种子查找 (100bp read)~2μs依赖种子密度
带状 SW (100bp, band=100)~8μs仿射间隙

测试复现

运行内置基准测试

bash
# Rust micro-benchmarks
cargo bench

# 集成测试
cargo test --release

自定义测试

bash
# 构建索引并测量时间
time bwa-rust index reference.fa -o ref

# 比对并测量时间
time bwa-rust mem ref.fa reads.fq -t 8 -o output.sam

持续集成

基准测试自动化正在开发中:

  • [ ] GitHub Actions 性能回归测试
  • [ ] 历史性能数据追踪
  • [ ] 与 BWA 的持续对比

改进计划

性能优化路线图:

  1. v0.3.0: 优化 SMEM 查找算法
  2. v0.4.0: SIMD 加速关键路径
  3. v0.5.0: 双向 BWT 搜索支持
  4. v0.6.0: 更高效的 SA 构建算法(O(n))

详见 ROADMAP.md

基于 MIT 许可证发布