Skip to content

Instantly share code, notes, and snippets.

@abh
Created September 24, 2012 19:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abh/3777867 to your computer and use it in GitHub Desktop.
Save abh/3777867 to your computer and use it in GitHub Desktop.
0 0 averages: 1: 0.000 3: 0.000 5: 0.000 10: 0.000
1 6424 averages: 1: 4063.541 3: 1822.822 5: 1165.722 10: 612.015
2 7719 averages: 1: 6376.026 3: 3496.081 5: 2355.059 10: 1289.190
3 8068 averages: 1: 7445.972 3: 4792.804 5: 3391.262 10: 1934.688
4 6745 averages: 1: 7002.720 3: 5346.468 5: 3999.519 10: 2392.709
5 4500 averages: 1: 5420.057 3: 5106.380 5: 4090.298 10: 2593.378
6 7254 averages: 1: 6579.921 3: 5715.612 5: 4664.233 10: 3037.263
7 10196 averages: 1: 8866.704 3: 6986.454 5: 5667.644 10: 3718.987
8 6387 averages: 1: 7298.442 3: 6816.404 5: 5798.143 10: 3973.091
9 5159 averages: 1: 5944.842 3: 6345.970 5: 5682.125 10: 4086.111
10 4395 averages: 1: 4964.350 3: 5792.273 5: 5448.511 10: 4115.545
11 8193 averages: 1: 7007.017 3: 6473.659 5: 5946.673 10: 4504.117
12 7126 averages: 1: 7082.295 3: 6658.815 5: 6160.744 10: 4753.985
13 5198 averages: 1: 5890.220 3: 6244.229 5: 5986.006 10: 4796.295
14 5897 averages: 1: 5894.507 3: 6145.741 5: 5969.862 10: 4901.112
15 8503 averages: 1: 7545.180 3: 6815.002 5: 6429.816 10: 5244.486
16 3184 averages: 1: 4785.747 3: 5784.297 5: 5840.575 10: 5048.097
17 7078 averages: 1: 6235.979 3: 6151.481 5: 6065.183 10: 5241.541
18 3884 averages: 1: 4747.947 3: 5507.908 5: 5669.266 10: 5112.170
19 11256 averages: 1: 8865.235 3: 7139.271 5: 6683.275 10: 5697.626
20 6590 averages: 1: 7426.195 3: 6983.442 5: 6666.352 10: 5782.626
21 3556 averages: 1: 4978.457 3: 6011.117 5: 6102.073 10: 5570.549
averages := &Averages{
&Average{average: 0.0, lastTime: time.Now(), interval: 1.0},
&Average{average: 0.0, lastTime: time.Now(), interval: 3.0},
&Average{average: 0.0, lastTime: time.Now(), interval: 5.0},
&Average{average: 0.0, lastTime: time.Now(), interval: 10.0},
}
now := time.Now()
for _, avg := range *averages {
avg.lastTime = now
avg.startTime = now
}
newCount := 0.0
go func() {
i := 0
for {
add := newCount
newCount = 0.0
for _, avg := range *averages {
now := time.Now()
fdtime := now.Sub(avg.lastTime).Seconds()
// fmt.Println(i, "fdtime", fdtime, t, avg.lastTime)
avg.lastTime = now
avg.average = MovingExpAvg(add, avg.average, fdtime, avg.interval)
// fmt.Println("new avg", avg)
}
fmt.Printf("%2d %6.0f averages:", i, add)
for _, avg := range *averages {
fmt.Printf(" %2.0f: %0.3f", avg.interval, avg.average)
}
fmt.Println("")
i++
time.Sleep(1 * time.Second)
}
}()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment