master > master: code go, py - Anzeige von Metriken vereinheitlicht; start/stop unmittelbar um Ausführung des Algorithmus
This commit is contained in:
@@ -68,9 +68,6 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x)
|
||||
@@ -80,7 +77,10 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_index = BinarySearch(input_L, input_x)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
@@ -70,9 +70,6 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x, input_u, input_v)
|
||||
@@ -82,7 +79,10 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_index = InterpolationSearch(input_L, input_x, input_u, input_v)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
@@ -65,9 +65,6 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_i)
|
||||
@@ -77,7 +74,10 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_value = FindIthSmallest(input_L, input_i)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"value": output_value,
|
||||
}
|
||||
@@ -125,9 +125,6 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_i)
|
||||
@@ -137,7 +134,10 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_value = FindIthSmallestDC(input_L, input_i)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"value": output_value,
|
||||
}
|
||||
|
||||
@@ -69,9 +69,6 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x, input_m)
|
||||
@@ -81,7 +78,10 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_index = JumpSearchLinear(input_L, input_x, input_m)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"index": output_index,
|
||||
}
|
||||
@@ -129,9 +129,6 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x)
|
||||
@@ -141,7 +138,10 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_index = JumpSearchExponentiell(input_L, input_x)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
@@ -63,9 +63,6 @@ func FancyFindPoison(input_L []int) (int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
@@ -75,7 +72,10 @@ func FancyFindPoison(input_L []int) (int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_index = FindPoison(input_L)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"index": output_index,
|
||||
}
|
||||
@@ -122,9 +122,6 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
@@ -134,7 +131,10 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_index = FindPoisonFast(input_L)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
@@ -66,9 +66,6 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L, input_x)
|
||||
@@ -78,7 +75,10 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_index = SequentialSearch(input_L, input_x)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"index": output_index,
|
||||
}
|
||||
|
||||
@@ -57,9 +57,6 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
@@ -69,7 +66,10 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_maxSum, output_indexFrom, output_indexTo = MaxSubSum(input_L)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"maxSum": output_maxSum,
|
||||
"index_from": output_indexFrom,
|
||||
@@ -120,9 +120,6 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
|
||||
// Start Message
|
||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||
|
||||
// Metriken initialisieren
|
||||
metrics.RestartMetrics()
|
||||
|
||||
// Prechecks:
|
||||
if setup.AppConfigPerformChecks() {
|
||||
err = preChecks(input_L)
|
||||
@@ -132,7 +129,10 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
|
||||
}
|
||||
|
||||
// Ausführung des Algorithmus:
|
||||
metrics.ResetMetrics()
|
||||
metrics.StartMetrics()
|
||||
output_maxSum, output_indexFrom, output_indexTo = MaxSubSumDC(input_L)
|
||||
metrics.StopMetrics()
|
||||
outputs = map[string]interface{}{
|
||||
"maxSum": output_maxSum,
|
||||
"index_from": output_indexFrom,
|
||||
|
||||
@@ -5,8 +5,10 @@ package metrics
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"ads/internal/core/utils"
|
||||
"ads/internal/types"
|
||||
)
|
||||
|
||||
@@ -22,10 +24,18 @@ var _tmr = types.NewTimer()
|
||||
* METHODS
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
func RestartMetrics() {
|
||||
_tmr.Reset()
|
||||
func ResetMetrics() {
|
||||
_ctr_time.Reset()
|
||||
_ctr_space.Reset()
|
||||
_tmr.Reset()
|
||||
}
|
||||
|
||||
func StartMetrics() {
|
||||
_tmr.Start()
|
||||
}
|
||||
|
||||
func StopMetrics() {
|
||||
_tmr.Stop()
|
||||
}
|
||||
|
||||
func AddTimeCost(options ...int) {
|
||||
@@ -45,6 +55,22 @@ func GetSpaceCost() int {
|
||||
}
|
||||
|
||||
func GetTimeElapsed() time.Duration {
|
||||
_tmr.Stop()
|
||||
return _tmr.ElapsedTime()
|
||||
}
|
||||
|
||||
func GetTimeElapsedLongFormat() string {
|
||||
t := _tmr.ElapsedTime()
|
||||
h := utils.Floor(t.Hours())
|
||||
m := utils.Floor(t.Minutes()) - h*60
|
||||
s := t.Seconds() - float64(m*60)
|
||||
h_string := fmt.Sprintf("%v", h)
|
||||
for len(h_string) < 2 {
|
||||
h_string = "0" + h_string
|
||||
}
|
||||
m_string := fmt.Sprintf("%v", m)
|
||||
for len(m_string) < 2 {
|
||||
m_string = "0" + m_string
|
||||
}
|
||||
s_string := fmt.Sprintf("%f", s)
|
||||
return fmt.Sprintf("%[1]s:%[2]s:%[3]s", h_string, m_string, s_string)
|
||||
}
|
||||
|
||||
@@ -96,7 +96,8 @@ func DisplayEndOfAlgorithm(outputs map[string]interface{}) {
|
||||
}
|
||||
|
||||
func DisplayMetrics() {
|
||||
logging.LogPlain(fmt.Sprintf("Dauer der Ausführung: t = \033[1m%[1]v\033[0m", metrics.GetTimeElapsed()))
|
||||
// logging.LogPlain(fmt.Sprintf("Dauer der Ausführung: t = \033[1m%[1]v\033[0m", metrics.GetTimeElapsed()))
|
||||
logging.LogPlain(fmt.Sprintf("Dauer der Ausführung: t = \033[1m%[1]v\033[0m", metrics.GetTimeElapsedLongFormat()))
|
||||
logging.LogPlain(fmt.Sprintf("Kosten (Zeit): T(n) = \033[1m%[1]v\033[0m", metrics.GetTimeCost()))
|
||||
logging.LogPlain(fmt.Sprintf("Kosten (Platz): S(n) = \033[1m%[1]v\033[0m", metrics.GetSpaceCost()))
|
||||
return
|
||||
|
||||
@@ -22,6 +22,7 @@ import (
|
||||
type Timer struct {
|
||||
time_elapsed time.Duration
|
||||
time_current time.Time
|
||||
running bool
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
@@ -48,14 +49,18 @@ func (self Timer) ElapsedTime() time.Duration {
|
||||
|
||||
func (self *Timer) Start() {
|
||||
self.time_current = time.Now()
|
||||
self.running = true
|
||||
}
|
||||
|
||||
func (self *Timer) Stop() {
|
||||
t0 := self.time_current
|
||||
t1 := time.Now()
|
||||
delta := t1.Sub(t0)
|
||||
self.time_current = t1
|
||||
self.time_elapsed += delta
|
||||
if self.running {
|
||||
t0 := self.time_current
|
||||
t1 := time.Now()
|
||||
delta := t1.Sub(t0)
|
||||
self.time_current = t1
|
||||
self.time_elapsed += delta
|
||||
}
|
||||
self.running = false
|
||||
}
|
||||
|
||||
func (self *Timer) Reset() {
|
||||
@@ -63,4 +68,5 @@ func (self *Timer) Reset() {
|
||||
delta := t.Sub(t) // d. h. 0
|
||||
self.time_current = t
|
||||
self.time_elapsed = delta
|
||||
self.running = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user