Due to the git worktrees in the development environment, BenchmarkDotNet cannot run properly (it discovers multiple copies of the same project file).
From a clean clone of the repository (without worktrees):
git checkout feature/memory-journal-benchmarks
dotnet build src/benchmark/Akka.Benchmarks/Akka.Benchmarks.csproj -c Release
dotnet run --project src/benchmark/Akka.Benchmarks/Akka.Benchmarks.csproj -c Release --no-build --framework net8.0 -- --filter "*MemoryJournal*"- Write_events_to_memory_journal - Baseline write performance
- Write_and_replay_events - Recovery performance (write + stop + restart + replay)
- Write_tagged_events_and_query - Tagged event handling performance
Each benchmark runs with 10, 100, and 1000 events to measure scalability.
Results will be saved to:
BenchmarkDotNet.Artifacts/results/Akka.Benchmarks.Persistence.MemoryJournalBenchmarks-report.htmlBenchmarkDotNet.Artifacts/results/Akka.Benchmarks.Persistence.MemoryJournalBenchmarks-report.csvBenchmarkDotNet.Artifacts/results/Akka.Benchmarks.Persistence.MemoryJournalBenchmarks-report-github.md
These benchmarks establish a performance baseline for the MemoryJournal before/after the race condition fixes in PR #7869.