Looks like performance is virtually identical in GCC 8.1: ValueSetBytes-16 39.1ns ± 1% 104.5ns ± 0% +167.26% (p=0.029 n=4+4) ValueSetFloat-16 25.9ns ± 1% 67.8ns ± 0% +161.78% (p=0.029 n=4+4) ValueSetBool-16 27.5ns ± 0% 54.0ns ± 1% +96.18% (p=0.029 n=4+4) ValueSetInt-16 35.1ns ± 4% 75.0ns ± 0% +113.51% (p=0.029 n=4+4) ValueSetProto-16 45.9ns ± 0% 86.7ns ± 0% +88.89% (p=0.029 n=4+4) ValueSetTime-16 52.7ns ± 1% 100.2ns ± 1% +90.32% (p=0.029 n=4+4) ValueSetDecimal-16 88.9ns ± 1% 177.2ns ± 0% +99.33% (p=0.029 n=4+4) ValueSetTuple-16 39.4ns ± 1% 104.5ns ± 0% +165.23% (p=0.029 n=4+4) ValueGetBytes-16 9.48ns ± 0% 11.62ns ± 1% +22.66% (p=0.029 n=4+4) ValueGetFloat-16 13.3ns ± 0% 23.9ns ± 1% +79.70% (p=0.029 n=4+4) ValueGetBool-16 14.8ns ± 1% 15.2ns ± 0% +2.36% (p=0.029 n=4+4) ValueGetInt-16 14.0ns ± 0% 14.6ns ± 0% +4.29% (p=0.029 n=4+4) ValueGetProto-16 26.4ns ± 0% 22.7ns ± 0% -14.08% (p=0.029 n=4+4) ValueGetTime-16 39.6ns ± 0% 79.0ns ± 0% +99.24% (p=0.029 n=4+4) ValueGetDecimal-16 101ns ± 3% 182ns ± 0% +80.04% (p=0.029 n=4+4) ValueGetTuple-16 9.14ns ± 0% 11.60ns ± 0% +26.85% (p=0.029 n=4+4)
On Thu, Feb 15, 2018 at 7:37 PM Ian Lance Taylor <i...@golang.org> wrote: > On Thu, Feb 15, 2018 at 11:31 AM, Tamir Duberstein <tam...@gmail.com> > wrote: > > What does all do? Anyway, the results are better, but still not "good": > > Using "all" applies the options to all packages, not just the one being > built. > > Thanks for the benchmarks, it's something to look at. > > Ian > > >> name old time/op new time/op delta > >> ValueSetBytes-16 38.5ns ± 0% 105.8ns ± 4% +174.81% (p=0.008 > >> n=5+5) > >> ValueSetFloat-16 27.5ns ± 1% 73.2ns ± 1% +166.38% (p=0.008 > >> n=5+5) > >> ValueSetBool-16 29.4ns ± 0% 52.2ns ± 5% +77.77% (p=0.016 > >> n=4+5) > >> ValueSetInt-16 34.0ns ± 1% 74.8ns ± 1% +119.62% (p=0.008 > >> n=5+5) > >> ValueSetProto-16 45.4ns ± 0% 87.8ns ± 1% +93.57% (p=0.008 > >> n=5+5) > >> ValueSetTime-16 52.9ns ± 1% 111.4ns ±18% +110.67% (p=0.008 > >> n=5+5) > >> ValueSetDecimal-16 94.6ns ± 0% 214.2ns ±36% +126.43% (p=0.008 > >> n=5+5) > >> ValueSetTuple-16 38.7ns ± 0% 105.6ns ± 3% +172.87% (p=0.008 > >> n=5+5) > >> ValueGetBytes-16 9.22ns ± 0% 11.60ns ± 0% +25.84% (p=0.008 > >> n=5+5) > >> ValueGetFloat-16 12.0ns ± 0% 23.8ns ± 0% +97.67% (p=0.016 > >> n=5+4) > >> ValueGetBool-16 14.4ns ± 0% 15.2ns ± 0% +5.56% (p=0.029 > >> n=4+4) > >> ValueGetInt-16 13.7ns ± 0% 14.6ns ± 0% +6.57% (p=0.016 > >> n=5+4) > >> ValueGetProto-16 26.1ns ± 0% 22.6ns ± 0% -13.41% (p=0.008 > >> n=5+5) > >> ValueGetTime-16 41.0ns ± 4% 78.9ns ± 0% +92.68% (p=0.008 > >> n=5+5) > >> ValueGetDecimal-16 130ns ±24% 183ns ± 1% +40.29% (p=0.008 > >> n=5+5) > >> ValueGetTuple-16 9.87ns ± 1% 11.60ns ± 0% +17.58% (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) > > > > > > On Thu, Feb 15, 2018 at 2:00 PM, Ian Lance Taylor <i...@golang.org> > wrote: > >> > >> On Thu, Feb 15, 2018 at 10:59 AM, Ian Lance Taylor <i...@golang.org> > >> wrote: > >> > On Thu, Feb 15, 2018 at 6:42 AM, Tamir Duberstein <tam...@gmail.com> > >> > wrote: > >> >> Built at this revision: > >> >> > >> >> > https://github.com/gcc-mirror/gcc/commit/a82f431e184a9ac922ad43df73cdcc702ab0f279 > >> > > >> > Thanks. What do you see from > >> > > >> > go test -gccgoflags="-g -O2" > >> > > >> > ? > >> > >> Sorry, make that > >> > >> go test -gccgoflags=all="-g -O2" > >> > >> Ian > >> > >> >> On Wed, Feb 14, 2018 at 7:44 PM, Ian Lance Taylor <i...@golang.org> > >> >> wrote: > >> >>> > >> >>> On Wed, Feb 14, 2018 at 12:00 PM, Tamir Duberstein < > tam...@gmail.com> > >> >>> wrote: > >> >>> > 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. > >> >>> > >> >>> Which version of gccgo? > >> >>> > >> >>> Ian > >> >> > >> >> > > > > > -- 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.