From 95446a256276b2084a54b94d3a29a27fb63e6639 Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Mon, 10 Jun 2024 18:55:01 +0200 Subject: [PATCH] Add Miscellaneous#measureExecutionTime method --- .../staropensource/sosengine/base/Engine.java | 29 +++++++++---------- .../sosengine/base/utility/Miscellaneous.java | 13 +++++++++ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/base/src/main/java/de/staropensource/sosengine/base/Engine.java b/base/src/main/java/de/staropensource/sosengine/base/Engine.java index b0ba65d..d7ebf27 100644 --- a/base/src/main/java/de/staropensource/sosengine/base/Engine.java +++ b/base/src/main/java/de/staropensource/sosengine/base/Engine.java @@ -60,8 +60,9 @@ public final class Engine { * @see LoggerInstance * @since 1-alpha0 */ + @SuppressWarnings("NotNullFieldNotInitialized") @NotNull - private final LoggerInstance logger; + private LoggerInstance logger; /** * Constructor, initializes the StarOpenSource Engine. @@ -79,24 +80,20 @@ public final class Engine { return; } - // Startup time measurement - long initTime = System.currentTimeMillis(); + long initTime = Miscellaneous.measureExecutionTime(() -> { + // Initialize EngineConfiguration and load it + new EngineConfiguration(); + EngineConfiguration.getInstance().loadConfiguration(); - // Initialize EngineConfiguration and load it - new EngineConfiguration(); - EngineConfiguration.getInstance().loadConfiguration(); + // Initialize classes + initializeClasses(); - // Initialize classes - initializeClasses(); + // Populate crash content + populateCrashContent(); - // Populate crash content - populateCrashContent(); - - // Initialize variables - logger = new LoggerInstance(new LogIssuer(getClass(), CodePart.ENGINE)); - - // Startup time measurement - initTime = System.currentTimeMillis() - initTime; + // Initialize variables + logger = new LoggerInstance(new LogIssuer(getClass(), CodePart.ENGINE)); + }); // Print finish message logger.info("Initialized sos!engine v%engine_version% in " + initTime + "ms"); diff --git a/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java b/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java index 11ad9e2..6cba48c 100644 --- a/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java +++ b/base/src/main/java/de/staropensource/sosengine/base/utility/Miscellaneous.java @@ -62,4 +62,17 @@ public final class Miscellaneous { object = null; while(weakReference.get() != null) System.gc(); } + + /** + * Measures the execution time of a {@link Runnable}. + * + * @param runnable the {@link Runnable} to execute + * @see Runnable + * @since 1-alpha0 + */ + public static long measureExecutionTime(Runnable runnable) { + long initTime = System.currentTimeMillis(); + runnable.run(); + return System.currentTimeMillis() - initTime; + } }