Skip to content

Conversation

@ChuckNovice
Copy link
Owner

Summary

  • Create RecurringThings.Benchmarks project using BenchmarkDotNet
  • Add benchmark classes for Query, Create, Update, and Delete operations
  • Use varied RRule patterns (DAILY, WEEKLY, MONTHLY, YEARLY) for realistic tests
  • Include progress output during setup/cleanup phases to avoid blank screen
  • Run migrations before benchmarks to exclude migration time from results
  • Generate PNG charts via ScottPlotExporter
  • Add benchmarking section to README.md

Benchmark Scenarios

Scenario Description Parameters
Query virtualized Get 3 months of virtualized occurrences 100/1000/10000 recurrences
Query recurrences Get recurrence patterns only 100/1000/10000 recurrences
Query with filter Get occurrences filtered by type 100/1000/10000 recurrences
Create recurrence Create new recurrence pattern Both providers
Create occurrence Create standalone occurrence Both providers
Update standalone Update standalone occurrence 100 occurrences
Update virtualized Update virtualized (creates override) 100 occurrences
Delete occurrence Delete standalone occurrence Both providers
Delete recurrence Cascade delete recurrence Both providers

Test plan

  • Build: dotnet build -c Release benchmarks/RecurringThings.Benchmarks
  • All unit tests pass
  • Code formatting verified
  • Run benchmarks locally with MongoDB
  • Run benchmarks locally with PostgreSQL
  • Verify PNG charts generated in BenchmarkResults/

🤖 Generated with Claude Code

- Create RecurringThings.Benchmarks project using BenchmarkDotNet
- Add QueryBenchmarks, CreateBenchmarks, UpdateBenchmarks, DeleteBenchmarks
- Use varied RRule patterns (DAILY, WEEKLY, MONTHLY, YEARLY) for realistic tests
- Include progress output during setup/cleanup phases
- Run migrations before benchmarks to exclude migration time from results
- Add ScottPlotExporter for PNG chart generation
- Add benchmarking section to README.md
- Fix PostgreSQL package author metadata

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ChuckNovice ChuckNovice merged commit 3af873d into main Jan 28, 2026
2 checks passed
@ChuckNovice ChuckNovice deleted the feature/benchmarking-project branch January 28, 2026 03:36
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.

2 participants