From 772b760dcd4b13b03f001f00000acc5934040381 Mon Sep 17 00:00:00 2001 From: Vladimir Bauer Date: Fri, 22 Mar 2024 22:17:17 +0500 Subject: [PATCH] using NewThreadSafeMovingAverage by default is overhead NewThreadSafeMovingAverage wrapper isn't needed unless decorator relying on ewma.MovingAverage is shared among multiple bars. If there is need to share a decorator, NewThreadSafeMovingAverage must be used explicitly. --- decor/eta.go | 2 +- decor/moving_average.go | 2 +- decor/speed.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/decor/eta.go b/decor/eta.go index ecf87b18..c4cb2a14 100644 --- a/decor/eta.go +++ b/decor/eta.go @@ -39,7 +39,7 @@ func EwmaETA(style TimeStyle, age float64, wcc ...WC) Decorator { } else { average = ewma.NewMovingAverage(age) } - return MovingAverageETA(style, NewThreadSafeMovingAverage(average), nil, wcc...) + return MovingAverageETA(style, average, nil, wcc...) } // MovingAverageETA decorator relies on MovingAverage implementation to calculate its average. diff --git a/decor/moving_average.go b/decor/moving_average.go index a1be8ada..165ef1eb 100644 --- a/decor/moving_average.go +++ b/decor/moving_average.go @@ -70,5 +70,5 @@ func (s *medianWindow) Set(value float64) { // NewMedian is fixed last 3 samples median MovingAverage. func NewMedian() ewma.MovingAverage { - return NewThreadSafeMovingAverage(new(medianWindow)) + return new(medianWindow) } diff --git a/decor/speed.go b/decor/speed.go index da8b253b..a90a8edd 100644 --- a/decor/speed.go +++ b/decor/speed.go @@ -46,7 +46,7 @@ func EwmaSpeed(unit interface{}, format string, age float64, wcc ...WC) Decorato } else { average = ewma.NewMovingAverage(age) } - return MovingAverageSpeed(unit, format, NewThreadSafeMovingAverage(average), wcc...) + return MovingAverageSpeed(unit, format, average, wcc...) } // MovingAverageSpeed decorator relies on MovingAverage implementation