Skip to content

Conversation

@konard
Copy link
Member

@konard konard commented Sep 14, 2025

Summary

Implements comprehensive BenchmarkDotNet integration to compare experimental code and different versions of similar algorithms as requested in issue #100.

New Benchmark Categories Added:

  1. TreeImplementationsBenchmarks - Compares different tree algorithms:

    • SizeBalancedTree (traditional recursive approach)
    • RecursionlessSizeBalancedTree (iterative approach)
    • SizedAndThreadedAVLBalancedTree (AVL with optimizations)
  2. MemoryImplementationsBenchmarks - Compares memory architectures:

    • SplitMemoryLinks (separate data/index memory)
    • UnitedMemoryLinks (unified memory layout)
  3. ExperimentalAlgorithmsBenchmarks - Compares 6 different experimental approaches to link data collection:

    • V1: Pre-allocated array with exact size calculation
    • V2: Dynamic list with resizing
    • V3: Pre-allocated list with capacity
    • V4: LINQ-based functional approach
    • V5: Batch processing for cache locality
    • V6: Memory-optimized with pooled storage

Enhanced Configuration:

  • Added statistical columns (Mean, StdDev, Median) for better comparison
  • Configured MemoryDiagnoser to track allocations and GC pressure
  • Parameterized testing with multiple data sizes (100, 1K, 10K items)

Documentation:

  • Added comprehensive README.md explaining all benchmark categories
  • Documented usage patterns and configuration options
  • Provided clear examples of how to run specific benchmark subsets

Test Plan

  • All benchmarks compile successfully
  • Project builds without errors (only nullable warnings remain)
  • BenchmarkDotNet integration working correctly
  • Different algorithm implementations tested and compared
  • Memory usage and performance metrics captured
  • Documentation covers all new features

🤖 Generated with Claude Code


Resolves #100

Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: #100
@konard konard self-assigned this Sep 14, 2025
Added comprehensive benchmark suite comparing different implementations of similar algorithms:

- TreeImplementationsBenchmarks: Compares SizeBalancedTree, RecursionlessSizeBalancedTree, and AVL tree implementations
- MemoryImplementationsBenchmarks: Compares Split vs United memory architectures
- ExperimentalAlgorithmsBenchmarks: Compares 6 different approaches to link data collection
- Enhanced Program.cs with better configuration and statistical columns
- Added README.md documenting all benchmark categories and usage

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@konard konard changed the title [WIP] Use BenchmarkDotNet for comparison of experimental code (comparison of similar version of the same algorithms) Implement BenchmarkDotNet comparison for experimental code (Issue #100) Sep 14, 2025
@konard konard marked this pull request as ready for review September 14, 2025 05:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use BenchmarkDotNet for comparison of experimental code (comparison of similar version of the same algorithms)

2 participants