Running the benchmarks in github.com/cockroachdb/cockroach/pkg/roachpb:

PATH=$HOME/local/go1.10/bin:$PATH
> go test -i ./pkg/roachpb && go test -run - -bench . ./pkg/roachpb -count 5
> -benchmem > gc.txt
>
> PATH=$GCCROOT/gcc/bin:$PATH
> go test -i ./pkg/roachpb && go test -run - -bench . ./pkg/roachpb -count 5
> -benchmem > gccgo.txt
>
> benchstat gc.txt gccgo.txt
> name                old time/op    new time/op    delta
> ValueSetBytes-16      38.7ns ± 1%   188.8ns ±44%  +388.36%  (p=0.008 n=5+5)
> ValueSetFloat-16      27.6ns ± 1%   112.4ns ± 4%  +306.95%  (p=0.008 n=5+5)
> ValueSetBool-16       29.5ns ± 0%    69.5ns ± 7%  +135.59%  (p=0.008 n=5+5)
> ValueSetInt-16        35.9ns ± 1%    89.0ns ± 5%  +147.83%  (p=0.008 n=5+5)
> ValueSetProto-16      45.5ns ± 0%   127.4ns ± 0%  +180.00%  (p=0.008 n=5+5)
> ValueSetTime-16       52.4ns ± 1%   136.4ns ± 0%  +160.40%  (p=0.008 n=5+5)
> ValueSetDecimal-16    95.5ns ± 1%   255.0ns ± 0%  +166.96%  (p=0.008 n=5+5)
> ValueSetTuple-16      38.7ns ± 1%   116.0ns ± 0%  +200.05%  (p=0.016 n=5+4)
> ValueGetBytes-16      9.22ns ± 0%   31.60ns ± 0%  +242.66%  (p=0.008 n=5+5)
> ValueGetFloat-16      12.0ns ± 0%    49.9ns ± 0%  +315.83%  (p=0.016 n=4+5)
> ValueGetBool-16       14.4ns ± 0%    39.3ns ± 0%  +172.92%  (p=0.029 n=4+4)
> ValueGetInt-16        13.7ns ± 0%    37.3ns ± 0%  +172.12%  (p=0.016 n=4+5)
> ValueGetProto-16      26.1ns ± 0%    60.5ns ± 0%  +131.72%  (p=0.016 n=4+5)
> ValueGetTime-16       39.6ns ± 0%   172.0ns ± 0%  +334.34%  (p=0.008 n=5+5)
> ValueGetDecimal-16    95.1ns ± 0%   264.0ns ± 0%  +177.49%  (p=0.008 n=5+5)
> ValueGetTuple-16      9.84ns ± 0%   31.50ns ± 0%  +220.25%  (p=0.008 n=5+5)
> name                old alloc/op   new alloc/op   delta
> ValueSetBytes-16       32.0B ± 0%     32.0B ± 0%      ~     (all equal)
> ValueSetFloat-16       16.0B ± 0%     16.0B ± 0%      ~     (all equal)
> ValueSetBool-16        8.00B ± 0%     8.00B ± 0%      ~     (all equal)
> ValueSetInt-16         16.0B ± 0%     16.0B ± 0%      ~     (all equal)
> ValueSetProto-16       8.00B ± 0%     8.00B ± 0%      ~     (all equal)
> ValueSetTime-16        16.0B ± 0%     16.0B ± 0%      ~     (all equal)
> ValueSetDecimal-16     32.0B ± 0%     32.0B ± 0%      ~     (all equal)
> ValueSetTuple-16       32.0B ± 0%     32.0B ± 0%      ~     (all equal)
> ValueGetBytes-16       0.00B          0.00B           ~     (all equal)
> ValueGetFloat-16       0.00B          0.00B           ~     (all equal)
> ValueGetBool-16        0.00B          0.00B           ~     (all equal)
> ValueGetInt-16         0.00B          0.00B           ~     (all equal)
> ValueGetProto-16       0.00B          0.00B           ~     (all equal)
> ValueGetTime-16        0.00B          0.00B           ~     (all equal)
> ValueGetDecimal-16     48.0B ± 0%     48.0B ± 0%      ~     (all equal)
> ValueGetTuple-16       0.00B          0.00B           ~     (all equal)
> name                old allocs/op  new allocs/op  delta
> ValueSetBytes-16        1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueSetFloat-16        1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueSetBool-16         1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueSetInt-16          1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueSetProto-16        1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueSetTime-16         1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueSetDecimal-16      1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueSetTuple-16        1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueGetBytes-16        0.00           0.00           ~     (all equal)
> ValueGetFloat-16        0.00           0.00           ~     (all equal)
> ValueGetBool-16         0.00           0.00           ~     (all equal)
> ValueGetInt-16          0.00           0.00           ~     (all equal)
> ValueGetProto-16        0.00           0.00           ~     (all equal)
> ValueGetTime-16         0.00           0.00           ~     (all equal)
> ValueGetDecimal-16      1.00 ± 0%      1.00 ± 0%      ~     (all equal)
> ValueGetTuple-16        0.00           0.00           ~     (all equal)


I chose this package because it doesn't depend on any of the fancy Makefile
magic in the CockroachDB repo; you should be able to reproduce these
results using just the go tool.

Are these results expected? I did minimal digging using pprof and perf but
nothing obvious jumps out - things are just slower across the board. These
results are on linux amd64.

-- 
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 golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to