I run unit tests. I get rubbish numbers; they are way too high for Put/
Delete operations, but they make sense for Get. I‘ve been trying to figure
this out all night and can’t see clear anymore, I‘d love a second pair of
eyes. I’ve investigated integer overflows, however time.Duration is a int64which I don't think should overflow.
To gather my metrics, I have a channel that received time.Duration objects:
https://github.com/aybabtme/dskvs/blob/proto/concurrency_test.go#L188
Depending on the operation I want to measure, I fill the channel this way
(see ctx.dur):
https://github.com/aybabtme/dskvs/blob/proto/concurrency_test.go#L196
In the case of a Get request (line 211), I get usable numbers:
2013/07/04 07:38:56 Get operations
2013/07/04 07:38:56 N=2048
total = 0.004893s
min = 1527ns
avg = 2389ns
med = 1919ns
max = 137159ns
p50 = 2968ns
p9 = 6549ns
p99 = 31446ns
p999 = 116621ns
p9999 = 0ns
However for Put and Delete, the number are rubbish (I know they are because
the test doesn't take 145s to run, neither is the smallest Put done in
22ms):
2013/07/04 07:38:56 Put operations
2013/07/04 07:38:56 N=2048
total = 145.633327s
min = 21378504ns
avg = 71110022ns
med = 70096754ns
max = 115325380ns
p50 = 92633901ns
p9 = 110740221ns
p99 = 114924456ns
p999 = 115311230ns
p9999 = 0ns
I've handrolled my own little stats struct, this is where the numbers come
from:
https://github.com/aybabtme/dskvs/blob/proto/stats.go
Does anybody have an idea as to what's going on?
--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.