diff options
Diffstat (limited to 'weed/udptransfer/timing_test.go')
| -rw-r--r-- | weed/udptransfer/timing_test.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/weed/udptransfer/timing_test.go b/weed/udptransfer/timing_test.go new file mode 100644 index 000000000..4f73bc33a --- /dev/null +++ b/weed/udptransfer/timing_test.go @@ -0,0 +1,32 @@ +package udptransfer + +import ( + "math" + "testing" + "time" +) + +func Test_sleep(t *testing.T) { + const loops = 10 + var intervals = [...]int64{1, 1e3, 1e4, 1e5, 1e6, 1e7} + var ret [len(intervals)][loops]int64 + for j := 0; j < len(intervals); j++ { + v := time.Duration(intervals[j]) + for i := 0; i < loops; i++ { + t0 := NowNS() + time.Sleep(v) + ret[j][i] = NowNS() - t0 + } + } + for j := 0; j < len(intervals); j++ { + var exp, sum, stdev float64 + exp = float64(intervals[j]) + for _, v := range ret[j] { + sum += float64(v) + stdev += math.Pow(float64(v)-exp, 2) + } + stdev /= float64(loops) + stdev = math.Sqrt(stdev) + t.Logf("interval=%s sleeping=%s stdev/k=%.2f", time.Duration(intervals[j]), time.Duration(sum/loops), stdev/1e3) + } +} |
