master > master: code go, py - Anzeige von Metriken vereinheitlicht; start/stop unmittelbar um Ausführung des Algorithmus

This commit is contained in:
RD
2021-11-02 13:05:34 +01:00
parent e8e36113be
commit 6d97bcc6db
12 changed files with 100 additions and 50 deletions

View File

@@ -66,17 +66,21 @@ def algorithmInfos(
if state:
# Initialisierung
DisplayStartOfAlgorithm(name, **inputs);
RestartMetrics();
# Prechecks
if checks and callable(preChecks):
preChecks(**inputs);
# Ausführung des Algorithmus:
# Metriken initialisieren + starten
ResetMetrics();
StartMetrics();
# Ausführung des Algorithmus:
nonnestedRecursion.trigger();
nonnestedAlgorithms.trigger();
outputs = func(*[], **inputs);
nonnestedAlgorithms.state = state1;
nonnestedRecursion.state = state2;
if state:
# Metriken anhalten
StopMetrics();
# benenne Outputs:
outputs_ = outputs if isinstance(outputs, tuple) else tuple([outputs]);
outputsNamed = { outputnames[k]: value for k, value in enumerate(outputs_) };

View File

@@ -49,6 +49,7 @@ class Counter(object):
class Timer(object):
_time_elapsed: timedelta;
_time_current: datetime;
_running: bool
def __init__(self):
self.reset();
@@ -62,14 +63,17 @@ class Timer(object):
def start(self):
self._time_current = datetime.now();
self._running = True
return self;
def stop(self):
t0 = self._time_current;
t1 = datetime.now();
delta = t1 - t0;
self._time_current = t1;
self._time_elapsed += delta;
if self._running:
t0 = self._time_current;
t1 = datetime.now();
delta = t1 - t0;
self._time_current = t1;
self._time_elapsed += delta;
self._running = False
return self;
def reset(self):
@@ -77,6 +81,7 @@ class Timer(object):
delta = t - t;
self._time_current = t;
self._time_elapsed = delta;
self._running = False
return self;
## Initialisierung:
@@ -88,7 +93,7 @@ _tmr = Timer();
# METHODS
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def RestartMetrics():
def ResetMetrics():
global _ctr_time;
global _ctr_space;
global _tmr;
@@ -98,6 +103,14 @@ def RestartMetrics():
_tmr.reset();
return;
def StartMetrics():
_tmr.start()
return;
def StopMetrics():
_tmr.stop()
return;
def AddTimeCost(n: int = 1):
global _ctr_time;
_ctr_time.add(n);