Skip to content

Add Benchmark Suite #32

@Virviil

Description

@Virviil

Description

Create performance benchmarks using criterion.rs for different image sizes and scenarios to measure and track oci2git performance over time.

Tasks

  • Add criterion.rs dependency and benchmark setup
  • Create benches/ directory with benchmark tests
  • Benchmark different image sizes (small <100MB, medium 100MB-1GB, large >1GB)
  • Benchmark different image types (Alpine, Ubuntu, multi-stage builds)
  • Benchmark different container engines (docker, nerdctl, tar)
  • Add memory usage profiling
  • Create performance regression testing
  • Generate benchmark reports and documentation

Skills Required

  • Rust programming
  • criterion.rs benchmarking framework
  • Performance analysis and profiling
  • Statistical analysis of benchmark results

Benchmark Categories

  1. Image Processing Speed: Time to convert images of different sizes
  2. Memory Usage: Peak memory consumption during processing
  3. Engine Comparison: Performance differences between docker/nerdctl/tar
  4. Git Operations: Time spent on Git repository creation and commits
  5. I/O Performance: File system operations and temporary data handling

Files to Create

  • benches/image_processing.rs - Main image processing benchmarks
  • benches/engine_comparison.rs - Container engine performance comparison
  • benches/memory_usage.rs - Memory profiling benchmarks

Test Images for Benchmarking

  • Small: alpine:latest (~5MB)
  • Medium: ubuntu:latest (~70MB)
  • Large: node:latest (~1GB)
  • Complex: Multi-stage build images

Expected Deliverables

  • Automated benchmark suite
  • Performance baseline documentation
  • CI integration for performance regression detection

This is an intermediate task perfect for Hacktoberfest! 🎃

Hacktoberfest 2025 🍂

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthacktoberfestIssues perfect for Hacktoberfest contributions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions