diff --git a/src/vault/gear/load-controller.hpp b/src/vault/gear/load-controller.hpp index be23821ba..21b05e259 100644 --- a/src/vault/gear/load-controller.hpp +++ b/src/vault/gear/load-controller.hpp @@ -164,16 +164,14 @@ namespace gear { void markLagSample (Time head, Time now) { + double headroom = _raw(std::clamp (now - (head.isRegular()? head:now) + , -SLEEP_HORIZON + , WORK_HORIZON)); const int64_t N = wiring_.maxCapacity * 3; - double headroom = _raw(head.isRegular()? head:now) - _raw(now); int64_t average = sampledLag_.load (std::memory_order_relaxed); int64_t newAverage; - do{ - double chango = (headroom + (N-1)*average) / N; - newAverage = std::floor (chango); - } + do newAverage = std::floor ((headroom + (N-1)*average) / N); while (not sampledLag_.compare_exchange_weak (average, newAverage, std::memory_order_relaxed)); -//cout<<"NAV "<< newAverage<< " headroom="< ...weil wir im Moment immer mit Vollast einsteigen und dann zwar im Idle-Fall herunterregeln; letzteres passiert typischerweise aber schnell. Also im Test sehe ich daher immer nur 1.0 oder keine Last

- - + @@ -82661,8 +82660,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
...das kann aber erst beurteilt werden, wenn wir echte Last-Szenarien kennen. Denkbar wäre, daß z.B. ein real-Time Render in etwa mit 3 Cores über die Runden kommt

- - +
@@ -82688,8 +82686,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- - +
@@ -82736,8 +82733,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
 mean ≔ mean · 1/N · ( N-1  + newVal/mean)

- - +
@@ -82751,8 +82747,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
Bei einem moving-Average interessiert es uns eigentlich nicht, wann genau der Wert gilt und für wen er gilt. Es interessiert uns nur, was am Ende rausgekommen ist, bzw. wie der Trend im Moment so ist

- - + @@ -82770,8 +82765,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
»irgendwann eventuell« in das MA ein

- -
+
@@ -82784,8 +82778,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
und das läßt sich mit zwei Atomic-Operationen realisieren

- - + @@ -82797,9 +82790,57 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +