I agree but in this case it is very consistent. Even if that were the case, wouldn’t that mean that 1.12 had better optimization in this case?

I will dig in today and report back with the generated code. 

On Apr 26, 2024, at 12:17 AM, 'Keith Randall' via golang-nuts <golang-nuts@googlegroups.com> wrote:

> There is a pretty significant degradation in AddFixed() which may be concerning to the Go team

What is the benchmark for this?
I am usually suspicious of sub-nanosecond benchmark times. Generally that indicates that the benchmark completely optimized away and all you are measuring is an empty loop.
Hard to know for sure without looking at the generated code for BenchmarkAddFixed.

On Thursday, April 25, 2024 at 10:54:42 AM UTC-7 Robert Engels wrote:
There is a pretty significant degradation in AddFixed() which may be concerning to the Go team, because the code of AddFixed is simply:

// Add adds f0 to f producing a Fixed. If either operand is NaN, NaN is returned
func (f Fixed) Add(f0 Fixed) Fixed {
    if f.IsNaN() || f0.IsNaN() {
        return NaN
    }
    return Fixed{fp: f.fp + f0.fp}
}

Here is the combined output:

│ go1.12.17.txt │ go1.21.5.txt │ go1.22.2.txt │
│ sec/op │ sec/op vs base │ sec/op vs base │
AddFixed-8 0.6000n ± 2% 0.9593n ± 1% +59.89% (p=0.002 n=6) 0.8012n ± 12% +33.53% (p=0.002 n=6)
AddDecimal-8 246.00n ± 1% 66.47n ± 14% -72.98% (p=0.002 n=6) 66.23n ± 1% -73.08% (p=0.002 n=6)
AddBigInt-8 14.400n ± 1% 9.560n ± 2% -33.61% (p=0.002 n=6) 9.525n ± 7% -33.85% (p=0.002 n=6)
AddBigFloat-8 79.90n ± 3% 63.09n ± 0% -21.03% (p=0.002 n=6) 66.20n ± 1% -17.15% (p=0.002 n=6)
MulFixed-8 4.950n ± 3% 3.512n ± 0% -29.04% (p=0.002 n=6) 3.809n ± 2% -23.06% (p=0.002 n=6)
MulDecimal-8 73.45n ± 3% 65.90n ± 0% -10.29% (p=0.002 n=6) 67.20n ± 1% -8.52% (p=0.002 n=6)
MulBigInt-8 17.45n ± 1% 10.38n ± 2% -40.52% (p=0.002 n=6) 10.43n ± 1% -40.23% (p=0.002 n=6)
MulBigFloat-8 36.00n ± 2% 23.85n ± 1% -33.75% (p=0.002 n=6) 24.00n ± 1% -33.35% (p=0.002 n=6)
DivFixed-8 4.700n ± 1% 3.689n ± 1% -21.51% (p=0.002 n=6) 3.695n ± 2% -21.39% (p=0.002 n=6)
DivDecimal-8 767.0n ± 11% 462.9n ± 0% -39.65% (p=0.002 n=6) 470.4n ± 4% -38.68% (p=0.002 n=6)
DivBigInt-8 45.25n ± 1% 34.68n ± 10% -23.36% (p=0.002 n=6) 34.98n ± 1% -22.70% (p=0.002 n=6)
DivBigFloat-8 108.0n ± 1% 110.8n ± 0% +2.64% (p=0.002 n=6) 113.6n ± 0% +5.19% (p=0.002 n=6)
CmpFixed-8 0.3800n ± 3% 0.2500n ± 1% -34.22% (p=0.002 n=6) 0.2511n ± 1% -33.92% (p=0.002 n=6)
CmpDecimal-8 7.925n ± 1% 6.942n ± 1% -12.40% (p=0.002 n=6) 6.503n ± 1% -17.94% (p=0.002 n=6)
CmpBigInt-8 5.800n ± 0% 4.795n ± 2% -17.32% (p=0.002 n=6) 4.807n ± 1% -17.12% (p=0.002 n=6)
CmpBigFloat-8 5.310n ± 2% 4.417n ± 1% -16.83% (p=0.002 n=6) 4.475n ± 9% -15.73% (p=0.002 n=6)
StringFixed-8 57.10n ± 9% 50.40n ± 1% -11.73% (p=0.002 n=6) 50.70n ± 1% -11.22% (p=0.002 n=6)
StringNFixed-8 55.60n ± 0% 51.41n ± 15% ~ (p=0.061 n=6) 49.78n ± 1% -10.48% (p=0.002 n=6)
StringDecimal-8 216.0n ± 2% 215.2n ± 21% ~ (p=1.000 n=6) 197.2n ± 0% -8.68% (p=0.002 n=6)
StringBigInt-8 121.00n ± 1% 98.81n ± 1% -18.33% (p=0.002 n=6) 98.61n ± 4% -18.50% (p=0.002 n=6)
StringBigFloat-8 413.0n ± 3% 387.6n ± 1% -6.15% (p=0.002 n=6) 408.4n ± 2% -1.10% (p=0.026 n=6)
WriteTo-8 37.15n ± 15% 26.14n ± 45% -29.65% (p=0.041 n=6) 26.40n ± 40% -28.94% (p=0.015 n=6)
geomean 28.20n 21.86n -22.49% 21.79n -22.76%
│ go1.12.17.txt │ go1.21.5.txt │ go1.22.2.txt │
│ B/op │ B/op vs base │ B/op vs base │
AddFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
AddDecimal-8 176.00 ± 0% 80.00 ± 0% -54.55% (p=0.002 n=6) 80.00 ± 0% -54.55% (p=0.002 n=6)
AddBigInt-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
AddBigFloat-8 48.00 ± 0% 48.00 ± 0% ~ (p=1.000 n=6) ¹ 48.00 ± 0% ~ (p=1.000 n=6) ¹
MulFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
MulDecimal-8 80.00 ± 0% 80.00 ± 0% ~ (p=1.000 n=6) ¹ 80.00 ± 0% ~ (p=1.000 n=6) ¹
MulBigInt-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
MulBigFloat-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
DivFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
DivDecimal-8 568.0 ± 0% 384.0 ± 0% -32.39% (p=0.002 n=6) 384.0 ± 0% -32.39% (p=0.002 n=6)
DivBigInt-8 8.000 ± 0% 8.000 ± 0% ~ (p=1.000 n=6) ¹ 8.000 ± 0% ~ (p=1.000 n=6) ¹
DivBigFloat-8 24.00 ± 0% 24.00 ± 0% ~ (p=1.000 n=6) ¹ 24.00 ± 0% ~ (p=1.000 n=6) ¹
CmpFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
CmpDecimal-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
CmpBigInt-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
CmpBigFloat-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
StringFixed-8 32.00 ± 0% 24.00 ± 0% -25.00% (p=0.002 n=6) 24.00 ± 0% -25.00% (p=0.002 n=6)
StringNFixed-8 32.00 ± 0% 24.00 ± 0% -25.00% (p=0.002 n=6) 24.00 ± 0% -25.00% (p=0.002 n=6)
StringDecimal-8 64.00 ± 0% 56.00 ± 0% -12.50% (p=0.002 n=6) 56.00 ± 0% -12.50% (p=0.002 n=6)
StringBigInt-8 24.00 ± 0% 16.00 ± 0% -33.33% (p=0.002 n=6) 16.00 ± 0% -33.33% (p=0.002 n=6)
StringBigFloat-8 192.0 ± 0% 176.0 ± 0% -8.33% (p=0.002 n=6) 176.0 ± 0% -8.33% (p=0.002 n=6)
WriteTo-8 21.00 ± 14% 23.00 ± 13% +9.52% (p=0.002 n=6) 23.00 ± 13% +9.52% (p=0.002 n=6)
geomean ² -9.89% ² -9.89% ²
¹ all samples are equal
² summaries must be >0 to compute geomean
│ go1.12.17.txt │ go1.21.5.txt │ go1.22.2.txt │
│ allocs/op │ allocs/op vs base │ allocs/op vs base │
AddFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
AddDecimal-8 8.000 ± 0% 2.000 ± 0% -75.00% (p=0.002 n=6) 2.000 ± 0% -75.00% (p=0.002 n=6)
AddBigInt-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
AddBigFloat-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=6) ¹ 1.000 ± 0% ~ (p=1.000 n=6) ¹
MulFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
MulDecimal-8 2.000 ± 0% 2.000 ± 0% ~ (p=1.000 n=6) ¹ 2.000 ± 0% ~ (p=1.000 n=6) ¹
MulBigInt-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
MulBigFloat-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
DivFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
DivDecimal-8 21.00 ± 0% 12.00 ± 0% -42.86% (p=0.002 n=6) 12.00 ± 0% -42.86% (p=0.002 n=6)
DivBigInt-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=6) ¹ 1.000 ± 0% ~ (p=1.000 n=6) ¹
DivBigFloat-8 2.000 ± 0% 2.000 ± 0% ~ (p=1.000 n=6) ¹ 2.000 ± 0% ~ (p=1.000 n=6) ¹
CmpFixed-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
CmpDecimal-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
CmpBigInt-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
CmpBigFloat-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
StringFixed-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=6) ¹ 1.000 ± 0% ~ (p=1.000 n=6) ¹
StringNFixed-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=6) ¹ 1.000 ± 0% ~ (p=1.000 n=6) ¹
StringDecimal-8 5.000 ± 0% 4.000 ± 0% -20.00% (p=0.002 n=6) 4.000 ± 0% -20.00% (p=0.002 n=6)
StringBigInt-8 2.000 ± 0% 1.000 ± 0% -50.00% (p=0.002 n=6) 1.000 ± 0% -50.00% (p=0.002 n=6)
StringBigFloat-8 8.000 ± 0% 7.000 ± 0% -12.50% (p=0.002 n=6) 7.000 ± 0% -12.50% (p=0.002 n=6)
WriteTo-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=6) ¹ 0.000 ± 0% ~ (p=1.000 n=6) ¹
geomean ² -12.73% ² -12.73% ²
¹ all samples are equal
² summaries must be >0 to compute geomean

On Apr 25, 2024, at 12:25 PM, Robert Engels <rob...@me.com> wrote:

Thanks. I noticed those but didn’t look into how to address. Appreciate it. I will rerun.

On Apr 25, 2024, at 12:23 PM, Steven Hartland <stevenm...@gmail.com> wrote:

Thanks for these, not sure if you noticed the notes from each run e.g. need >= 4 samples to detect a difference at alpha level 0.05.

Basically run the benchmark with a -count=6 or more and then run the tool, and you get a the comparison values which are typically the interesting bit

On Thu, 25 Apr 2024 at 00:29, Robert Engels <rob...@me.com> wrote:
│ /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 <stevenm...@gmail.com> wrote:

What’s it look like when your run it through 
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 <golan...@googlegroups.com> wrote:
I have a fairly stable project 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...@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.



--
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/834a058c-83de-4fef-8d40-adb4e709d03cn%40googlegroups.com.

--
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/E488D2A7-780E-487A-9FCC-51844AB9BED2%40ix.netcom.com.

Reply via email to