public void It_should_reply_history_when_there_is_20_different_event_types() { var count = 10_000_000; var state = new TestState(); var changes = ChangeLog .For <TestState>() .On <TestEvent01>(Handle) .On <TestEvent02>(Handle) .On <TestEvent03>(Handle) .On <TestEvent04>(Handle) .On <TestEvent05>(Handle) .On <TestEvent06>(Handle) .On <TestEvent07>(Handle) .On <TestEvent08>(Handle) .On <TestEvent09>(Handle) .On <TestEvent10>(Handle) .On <TestEvent11>(Handle) .On <TestEvent12>(Handle) .On <TestEvent13>(Handle) .On <TestEvent14>(Handle) .On <TestEvent15>(Handle) .On <TestEvent16>(Handle) .On <TestEvent17>(Handle) .On <TestEvent18>(Handle) .On <TestEvent19>(Handle) .On <TestEvent20>(Handle) .New(state); var historyFor01 = Enumerable .Range(0, count) .Select(_ => new TestEvent01 { CurrentValue = Guid.NewGuid() }) .ToList(); var historyFor20 = Enumerable .Range(0, count) .Select(_ => new TestEvent20 { CurrentValue = Guid.NewGuid() }) .ToList(); var stopwatch = Stopwatch.StartNew(); changes.LoadFromHistory(historyFor01); stopwatch.Stop(); Console.WriteLine($"TestEvent01: {stopwatch.ElapsedMilliseconds}"); stopwatch = Stopwatch.StartNew(); changes.LoadFromHistory(historyFor20); stopwatch.Stop(); Console.WriteLine($"TestEvent20: {stopwatch.ElapsedMilliseconds}"); }