From e1bb3beeed66b6b50fa8abdb7d41a467df829b42 Mon Sep 17 00:00:00 2001 From: Sara Gerretsen Date: Tue, 23 Sep 2025 09:26:17 +0200 Subject: [PATCH] feat: improved simulation benchmarking --- src/simulation.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/simulation.cpp b/src/simulation.cpp index a5efad8..3c9b7eb 100644 --- a/src/simulation.cpp +++ b/src/simulation.cpp @@ -131,15 +131,16 @@ static void FindBorn(size_t segment, size_t length) { bornMutex.unlock(); } -#define MULTITHREADING 0 -static uint64_t generationTime{ 0 }; +#define MULTITHREADING 1 +static uint64_t generationStartTime{ 0 }; static bool logGenerationTime{ false }; static void PopulateChanges() { - generationTime = SDL_GetTicksNS(); - logGenerationTime = true; #if MULTITHREADING - constexpr size_t split{ 2 }; + constexpr size_t split{ 1 }; + SDL_Log("Multithreading ON"); + logGenerationTime = true; + generationStartTime = SDL_GetTicksNS(); size_t const seg_length{ living.size() / split }; for (size_t i{ 0 }; i < split; ++i) { threading::tasks.ScheduleTask(std::bind(FindOverpopulated, i, seg_length)); @@ -147,6 +148,9 @@ static void PopulateChanges() { threading::tasks.ScheduleTask(std::bind(FindBorn, i, seg_length)); } #else + SDL_Log("Multithreading OFF"); + logGenerationTime = true; + generationStartTime = SDL_GetTicksNS(); FindOverpopulated(0, living.size()); FindUnderpopulated(0, living.size()); FindBorn(0, living.size()); @@ -258,7 +262,7 @@ void Draw(SDL_Renderer *renderer, double cellSizePercent) { bornMutex.unlock(); if (logGenerationTime) { - SDL_Log("End Generation %lf", double(SDL_GetTicksNS() - generationTime) * 0.0000000001); + SDL_Log("End Generation %lf", double(SDL_GetTicksNS() - generationStartTime) * 0.0000000001); logGenerationTime = false; } }