Benchmarks

fq-compressor includes a comprehensive benchmarking framework for evaluating compiler optimizations and multi-dimensional performance analysis.

Latest Results

Compiler Compression Decompression Ratio Bits/Base
GCC 13 11.30 MB/s 60.10 MB/s 3.97x ~2.01
Clang 16 11.90 MB/s 62.30 MB/s 3.97x ~2.01

Test environment: Intel Core i7-9700 @ 3.00GHz, 8 cores, 2.27M Illumina reads (511 MB uncompressed)

Key Metrics

Metric Description
Compression Speed (MB/s) Throughput during compression
Decompression Speed (MB/s) Throughput during decompression
Compression Ratio Original size / Compressed size
Bits per Base Compressed bits per DNA base
Peak Memory (MB) Maximum memory during operation
Scalability Performance gains with multiple threads
Parallel Efficiency Actual speedup / Ideal speedup

Running Benchmarks

Compiler Comparison

# Build both GCC and Clang Release versions
./scripts/build.sh gcc-release 4
./scripts/build.sh clang-release 4

# Run compiler performance comparison with visualization
python3 benchmark/compiler_benchmark.py \
  --input data/reads.fastq.gz \
  --gcc-binary build/gcc-release/src/fqc \
  --clang-binary build/clang-release/src/fqc \
  -t 1 4 8 \
  -r 3 \
  --output-dir docs/benchmark \
  --visualize

Standard Benchmark

# Run the benchmark suite
python3 benchmark/benchmark.py \
  --input data/reads.fastq.gz \
  --binary build/clang-release/src/fqc \
  -t 4 \
  -r 5

# Generate visualizations
python3 benchmark/visualize_benchmark.py \
  --input docs/benchmark/results/benchmark-results.json

Generated Reports

The benchmarking framework automatically generates:

Output Description
benchmark-report.html Comprehensive HTML report with embedded visualizations
benchmark-report.md Markdown format report
benchmark-results.json Raw data in JSON format
compression-speed.png Compression throughput comparison
decompression-speed.png Decompression throughput comparison
compression-ratio.png Compression efficiency comparison
memory-usage.png Peak memory usage analysis
scalability.png Parallel scalability metrics

Scalability

Threads Compression Decompression Efficiency
1 ~6 MB/s ~30 MB/s 100%
4 ~12 MB/s ~60 MB/s ~50%
8 ~18 MB/s ~90 MB/s ~38%

Efficiency = (actual speedup / ideal speedup). Sub-linear scaling is expected due to I/O bottlenecks and memory bandwidth.

results matching ""

    No results matching ""