Just for fun, now that Go 1.7 is out, how much does the new compiler help?

Running against the memstore initially makes some sense, as this will show – outside of the speed of the backend – how much overhead we cut down. (It ought to be even better with other backends as well)

benchmark old ns/op new ns/op delta BenchmarkNamePredicate-4 172909 188626 +9.09% BenchmarkLargeSetsNoIntersection-4 3887774 3567440 -8.24% BenchmarkVeryLargeSetsSmallIntersection-4 8124423 7086751 -12.77% BenchmarkHelplessContainsChecker-4 2678535 2509560 -6.31% BenchmarkHelplessNotContainsFilms-4 822088 688791 -16.21% BenchmarkHelplessNotContainsActors-4 10993693 9644962 -12.27% BenchmarkNetAndSpeed-4 912910 765509 -16.15% BenchmarkKeanuAndNet-4 637385 557001 -12.61% BenchmarkKeanuAndSpeed-4 827059 766391 -7.34% BenchmarkKeanuOther-4 3522062 3386115 -3.86% BenchmarkKeanuBullockOther-4 5033822 4370622 -13.17% BenchmarkSaveBogartPerformances-4 323573 292915 -9.47%

I’ll take a 10% win by simply upgrading my compiler any day. The first one is larger because it’s more sensitive to subtle changes, it being super short.

Feel free to try with other backends. Bolt probably gets more wins.