│ /Users/robertengels/go1.21.5.txt │ /Users/robertengels/go1.22.2.txt │ │ sec/op │ sec/op vs base │ AddFixed-8 0.9603n ± ∞ ¹ 0.7931n ± ∞ ¹ ~ (p=1.000 n=1) ² AddDecimal-8 66.41n ± ∞ ¹ 66.27n ± ∞ ¹ ~ (p=1.000 n=1) ² AddBigInt-8 9.452n ± ∞ ¹ 10.650n ± ∞ ¹ ~ (p=1.000 n=1) ² AddBigFloat-8 63.26n ± ∞ ¹ 66.33n ± ∞ ¹ ~ (p=1.000 n=1) ² MulFixed-8 3.519n ± ∞ ¹ 3.939n ± ∞ ¹ ~ (p=1.000 n=1) ² MulDecimal-8 65.98n ± ∞ ¹ 67.07n ± ∞ ¹ ~ (p=1.000 n=1) ² MulBigInt-8 10.69n ± ∞ ¹ 10.49n ± ∞ ¹ ~ (p=1.000 n=1) ² MulBigFloat-8 23.72n ± ∞ ¹ 24.12n ± ∞ ¹ ~ (p=1.000 n=1) ² DivFixed-8 3.675n ± ∞ ¹ 3.661n ± ∞ ¹ ~ (p=1.000 n=1) ² DivDecimal-8 460.8n ± ∞ ¹ 469.6n ± ∞ ¹ ~ (p=1.000 n=1) ² DivBigInt-8 34.82n ± ∞ ¹ 34.90n ± ∞ ¹ ~ (p=1.000 n=1) ² DivBigFloat-8 110.4n ± ∞ ¹ 113.6n ± ∞ ¹ ~ (p=1.000 n=1) ² CmpFixed-8 0.2529n ± ∞ ¹ 0.2784n ± ∞ ¹ ~ (p=1.000 n=1) ² CmpDecimal-8 6.883n ± ∞ ¹ 6.475n ± ∞ ¹ ~ (p=1.000 n=1) ² CmpBigInt-8 4.779n ± ∞ ¹ 4.805n ± ∞ ¹ ~ (p=1.000 n=1) ² CmpBigFloat-8 4.411n ± ∞ ¹ 5.081n ± ∞ ¹ ~ (p=1.000 n=1) ² StringFixed-8 50.36n ± ∞ ¹ 50.64n ± ∞ ¹ ~ (p=1.000 n=1) ² StringNFixed-8 53.41n ± ∞ ¹ 49.66n ± ∞ ¹ ~ (p=1.000 n=1) ² StringDecimal-8 197.6n ± ∞ ¹ 197.0n ± ∞ ¹ ~ (p=1.000 n=1) ² StringBigInt-8 98.17n ± ∞ ¹ 98.00n ± ∞ ¹ ~ (p=1.000 n=1) ² StringBigFloat-8 386.2n ± ∞ ¹ 395.2n ± ∞ ¹ ~ (p=1.000 n=1) ² WriteTo-8 31.82n ± ∞ ¹ 31.71n ± ∞ ¹ ~ (p=1.000 n=1) ² geomean 22.01n 22.28n +1.26% ¹ need >= 6 samples for confidence interval at level 0.95 ² need >= 4 samples to detect a difference at alpha level 0.05 │ /Users/robertengels/go1.21.5.txt │ /Users/robertengels/go1.22.2.txt │ │ B/op │ B/op vs base │ AddFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² AddDecimal-8 80.00 ± ∞ ¹ 80.00 ± ∞ ¹ ~ (p=1.000 n=1) ² AddBigInt-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² AddBigFloat-8 48.00 ± ∞ ¹ 48.00 ± ∞ ¹ ~ (p=1.000 n=1) ² MulFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² MulDecimal-8 80.00 ± ∞ ¹ 80.00 ± ∞ ¹ ~ (p=1.000 n=1) ² MulBigInt-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² MulBigFloat-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² DivFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² DivDecimal-8 384.0 ± ∞ ¹ 384.0 ± ∞ ¹ ~ (p=1.000 n=1) ² DivBigInt-8 8.000 ± ∞ ¹ 8.000 ± ∞ ¹ ~ (p=1.000 n=1) ² DivBigFloat-8 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpDecimal-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpBigInt-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpBigFloat-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² StringFixed-8 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=1) ² StringNFixed-8 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=1) ² StringDecimal-8 56.00 ± ∞ ¹ 56.00 ± ∞ ¹ ~ (p=1.000 n=1) ² StringBigInt-8 16.00 ± ∞ ¹ 16.00 ± ∞ ¹ ~ (p=1.000 n=1) ² StringBigFloat-8 176.0 ± ∞ ¹ 176.0 ± ∞ ¹ ~ (p=1.000 n=1) ² WriteTo-8 29.00 ± ∞ ¹ 28.00 ± ∞ ¹ ~ (p=1.000 n=1) ³ geomean ⁴ -0.16% ⁴ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ need >= 4 samples to detect a difference at alpha level 0.05 ⁴ summaries must be >0 to compute geomean │ /Users/robertengels/go1.21.5.txt │ /Users/robertengels/go1.22.2.txt │ │ allocs/op │ allocs/op vs base │ AddFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² AddDecimal-8 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=1) ² AddBigInt-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² AddBigFloat-8 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=1) ² MulFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² MulDecimal-8 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=1) ² MulBigInt-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² MulBigFloat-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² DivFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² DivDecimal-8 12.00 ± ∞ ¹ 12.00 ± ∞ ¹ ~ (p=1.000 n=1) ² DivBigInt-8 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=1) ² DivBigFloat-8 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpFixed-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpDecimal-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpBigInt-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² CmpBigFloat-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² StringFixed-8 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=1) ² StringNFixed-8 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=1) ² StringDecimal-8 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=1) ² StringBigInt-8 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=1) ² StringBigFloat-8 7.000 ± ∞ ¹ 7.000 ± ∞ ¹ ~ (p=1.000 n=1) ² WriteTo-8 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ² geomean ³ +0.00% ³
> On Apr 24, 2024, at 6:20 PM, Steven Hartland <stevenmhartl...@gmail.com> > wrote: > > What’s it look like when your run it through > https://pkg.go.dev/golang.org/x/perf/cmd/benchstat > <https://pkg.go.dev/golang.org/x/perf/cmd/benchstat> which will provide a > nice side by side comparison? > > On Wed, 24 Apr 2024 at 19:26, 'Robert Engels' via golang-nuts > <golang-nuts@googlegroups.com <mailto:golang-nuts@googlegroups.com>> wrote: > I have a fairly stable project github.com/robaho/fixed > <http://github.com/robaho/fixed> which is almost 100% cpu bound. It doesn’t > change so it makes a great way to compare the performance of different Go > versions using the same hardware. I took the time to re-run the tests today. > > Using 1.21.17: > > BenchmarkAddFixed-8 2000000000 0.59 ns/op > 0 B/op 0 allocs/op > > > BenchmarkAddDecimal-8 5000000 243 ns/op > 176 B/op 8 allocs/op > > > BenchmarkAddBigInt-8 100000000 14.3 ns/op > 0 B/op 0 allocs/op > > > BenchmarkAddBigFloat-8 20000000 78.8 ns/op > 48 B/op 1 allocs/op > > > BenchmarkMulFixed-8 300000000 4.88 ns/op > 0 B/op 0 allocs/op > > > BenchmarkMulDecimal-8 20000000 72.0 ns/op > 80 B/op 2 allocs/op > > > BenchmarkMulBigInt-8 100000000 17.1 ns/op > 0 B/op 0 allocs/op > > > BenchmarkMulBigFloat-8 30000000 35.5 ns/op > 0 B/op 0 allocs/op > > > BenchmarkDivFixed-8 300000000 4.71 ns/op > 0 B/op 0 allocs/op > > > BenchmarkDivDecimal-8 2000000 779 ns/op > 568 B/op 21 allocs/op > > > BenchmarkDivBigInt-8 30000000 46.1 ns/op > 8 B/op 1 allocs/op > > > BenchmarkDivBigFloat-8 20000000 108 ns/op > 24 B/op 2 allocs/op > > > BenchmarkCmpFixed-8 2000000000 0.38 ns/op > 0 B/op 0 allocs/op > > > BenchmarkCmpDecimal-8 200000000 8.05 ns/op > 0 B/op 0 allocs/op > > > BenchmarkCmpBigInt-8 300000000 5.87 ns/op > 0 B/op 0 allocs/op > > > BenchmarkCmpBigFloat-8 300000000 5.46 ns/op > 0 B/op 0 allocs/op > > > BenchmarkStringFixed-8 20000000 57.4 ns/op > 32 B/op 1 allocs/op > > > BenchmarkStringNFixed-8 20000000 55.6 ns/op > 32 B/op 1 allocs/op > > > BenchmarkStringDecimal-8 10000000 218 ns/op > 64 B/op 5 allocs/op > > > BenchmarkStringBigInt-8 10000000 122 ns/op > 24 B/op 2 allocs/op > > > BenchmarkStringBigFloat-8 3000000 416 ns/op > 192 B/op 8 allocs/op > > > BenchmarkWriteTo-8 30000000 45.8 ns/op > 18 B/op 0 allocs/op > > and version 1.21.5: > > BenchmarkAddFixed-8 1000000000 0.9735 ns/op > 0 B/op 0 allocs/op > > > BenchmarkAddDecimal-8 14311995 69.99 ns/op > 80 B/op 2 allocs/op > > > BenchmarkAddBigInt-8 100000000 13.42 ns/op > 0 B/op 0 allocs/op > > > BenchmarkAddBigFloat-8 17506702 63.84 ns/op > 48 B/op 1 allocs/op > > > BenchmarkMulFixed-8 313983104 3.732 ns/op > 0 B/op 0 allocs/op > > > BenchmarkMulDecimal-8 18046520 66.59 ns/op > 80 B/op 2 allocs/op > > > BenchmarkMulBigInt-8 100000000 10.79 ns/op > 0 B/op 0 allocs/op > > > BenchmarkMulBigFloat-8 49186024 24.30 ns/op > 0 B/op 0 allocs/op > > > BenchmarkDivFixed-8 306888069 3.721 ns/op > 0 B/op 0 allocs/op > > > BenchmarkDivDecimal-8 2510688 462.4 ns/op > 384 B/op 12 allocs/op > > > BenchmarkDivBigInt-8 33993822 37.02 ns/op > 8 B/op 1 allocs/op > > > BenchmarkDivBigFloat-8 9415330 111.5 ns/op > 24 B/op 2 allocs/op > > > BenchmarkCmpFixed-8 1000000000 0.2548 ns/op > 0 B/op 0 allocs/op > > > BenchmarkCmpDecimal-8 168714549 7.086 ns/op > 0 B/op 0 allocs/op > > > BenchmarkCmpBigInt-8 234895634 4.952 ns/op > 0 B/op 0 allocs/op > > > BenchmarkCmpBigFloat-8 260814464 4.503 ns/op > 0 B/op 0 allocs/op > > > BenchmarkStringFixed-8 23725470 50.57 ns/op > 24 B/op 1 allocs/op > > > BenchmarkStringNFixed-8 23666628 50.67 ns/op > 24 B/op 1 allocs/op > > > BenchmarkStringDecimal-8 5665790 200.1 ns/op > 56 B/op 4 allocs/op > > > BenchmarkStringBigInt-8 10596398 100.2 ns/op > 16 B/op 1 allocs/op > > > BenchmarkStringBigFloat-8 2922332 391.2 ns/op > 176 B/op 7 allocs/op > > > BenchmarkWriteTo-8 45734523 31.53 ns/op > 23 B/op 0 allocs/op > which is pretty impressive across the board. > > Only 2 tests show any degradation and most show significant improvement. > > On the two that degrade, AddFixed is a fairly trivial add of 2 longs, so that > is surprising. Strangely, WriteTo shows a different number of B/op on > different runs (all of the other tests are stable). > > -- > 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 > <mailto:golang-nuts+unsubscr...@googlegroups.com>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/A6412E4C-03BD-477B-A725-06510DDD618A%40me.com > > <https://groups.google.com/d/msgid/golang-nuts/A6412E4C-03BD-477B-A725-06510DDD618A%40me.com?utm_medium=email&utm_source=footer>. -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/D4AB6AF9-D4DD-4E39-B669-33D227FEA4F4%40me.com.