-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Commit cbbd385
strconv: remove arch-specific decision in formatBase10
There is only one architecture-specific code segment left in formatBase10.
Remove it for simplicity.
The only affected system is ppc64le, which does add 10-20% to the
runtime, but that's a ppc64le problem, not a strconv problem.
Changing the "uint32" to "uint" makes ppc64le not slower anymore,
meaning that somehow uint32 divide-by-constant is slower than
uint divide-by-constant on ppc64le. If this minor slowdown matters,
it should be addressed by improving the generated code for
ppc64le division, not by complicating strconv.
Even though some percentages look big, the geomean is +6% and
the worst case slowdown is only about 6ns/call.
benchmark \ host local s7 s7:GOARCH=386 linux-amd64 linux-386 linux-ppc64le
vs base vs base vs base vs base vs base vs base
AppendFloat/Decimal ~ ~ -0.75% ~ ~ ~
AppendFloat/Float ~ ~ ~ ~ ~ ~
AppendFloat/Exp ~ ~ ~ ~ ~ ~
AppendFloat/NegExp ~ ~ ~ ~ ~ ~
AppendFloat/LongExp ~ ~ ~ ~ ~ ~
AppendFloat/Big ~ ~ ~ ~ ~ ~
AppendFloat/BinaryExp ~ ~ ~ ~ -2.92% +10.31%
AppendFloat/32Integer ~ ~ ~ ~ ~ ~
AppendFloat/32ExactFraction ~ ~ -0.43% ~ ~ ~
AppendFloat/32Point ~ ~ ~ ~ ~ ~
AppendFloat/32Exp ~ ~ ~ ~ ~ ~
AppendFloat/32NegExp ~ ~ ~ ~ ~ ~
AppendFloat/32Shortest ~ ~ ~ ~ ~ ~
AppendFloat/32Fixed8Hard ~ ~ -1.12% ~ -4.19% +5.39%
AppendFloat/32Fixed9Hard ~ ~ ~ ~ ~ +12.09%
AppendFloat/64Fixed1 ~ ~ ~ ~ -0.78% ~
AppendFloat/64Fixed2 ~ ~ +0.53% ~ -0.74% ~
AppendFloat/64Fixed3 ~ ~ ~ ~ -0.82% ~
AppendFloat/64Fixed4 ~ ~ ~ ~ -0.63% +2.55%
AppendFloat/64Fixed12 ~ ~ +0.63% -1.83% -1.01% +5.68%
AppendFloat/64Fixed16 ~ ~ +0.63% ~ -1.33% ~
AppendFloat/64Fixed12Hard ~ ~ +1.31% ~ -0.34% +4.43%
AppendFloat/64Fixed17Hard ~ ~ ~ ~ -1.66% +4.63%
AppendFloat/64Fixed18Hard ~ ~ ~ ~ ~ ~
AppendFloat/Slowpath64 ~ ~ ~ ~ ~ ~
AppendFloat/SlowpathDenormal64 ~ ~ ~ ~ ~ ~
AppendInt ~ ~ ~ ~ -0.77% +11.06%
AppendUint ~ ~ +0.42% ~ -1.35% +7.27%
AppendIntSmall ~ ~ ~ ~ ~ ~
AppendUintVarlen/digits=1 ~ ~ ~ ~ ~ ~
AppendUintVarlen/digits=2 ~ ~ ~ ~ ~ +4.80%
AppendUintVarlen/digits=3 ~ ~ -1.61% ~ -4.49% +10.04%
AppendUintVarlen/digits=4 ~ ~ -2.09% ~ -2.88% +9.99%
AppendUintVarlen/digits=5 ~ ~ -3.97% ~ -8.92% +7.19%
AppendUintVarlen/digits=6 ~ ~ -3.88% ~ -7.84% +5.25%
AppendUintVarlen/digits=7 ~ ~ -2.93% ~ -11.08% ~
AppendUintVarlen/digits=8 ~ ~ -2.88% ~ -10.09% +10.74%
AppendUintVarlen/digits=9 ~ ~ -3.69% ~ -10.98% +11.56%
AppendUintVarlen/digits=10 ~ ~ +0.90% ~ -1.09% +34.49%
AppendUintVarlen/digits=11 ~ ~ +2.11% ~ +0.72% +20.63%
AppendUintVarlen/digits=12 ~ ~ +1.21% ~ -2.26% +27.38%
AppendUintVarlen/digits=13 ~ ~ +2.07% ~ -2.13% +15.37%
AppendUintVarlen/digits=14 ~ ~ ~ ~ -3.27% +19.32%
AppendUintVarlen/digits=15 ~ ~ +0.56% ~ -3.18% +8.55%
AppendUintVarlen/digits=16 ~ ~ ~ ~ -4.31% +15.69%
AppendUintVarlen/digits=17 ~ ~ ~ ~ -4.50% +7.61%
AppendUintVarlen/digits=18 ~ ~ ~ ~ -5.54% +12.74%
AppendUintVarlen/digits=19 ~ ~ +0.87% ~ +0.41% +13.82%
AppendUintVarlen/digits=20 ~ ~ +1.40% ~ +0.82% +15.80%
host: local
│ e8ffcf3095c │ 3c5742b667a │
│ sec/op │ sec/op vs base │
AppendFloat/Decimal-12 21.04n ± 2% 21.10n ± 0% ~ (p=0.542 n=20)
AppendFloat/Float-12 32.77n ± 1% 32.56n ± 0% ~ (p=0.213 n=20)
AppendFloat/Exp-12 32.42n ± 1% 32.42n ± 0% ~ (p=0.995 n=20)
AppendFloat/NegExp-12 31.78n ± 2% 31.79n ± 2% ~ (p=0.542 n=20)
AppendFloat/LongExp-12 31.54n ± 1% 31.45n ± 1% ~ (p=0.507 n=20)
AppendFloat/Big-12 33.75n ± 1% 33.59n ± 1% ~ (p=0.597 n=20)
AppendFloat/BinaryExp-12 19.16n ± 1% 19.14n ± 1% ~ (p=0.635 n=20)
AppendFloat/32Integer-12 21.59n ± 1% 21.63n ± 1% ~ (p=0.569 n=20)
AppendFloat/32ExactFraction-12 31.12n ± 1% 31.17n ± 1% ~ (p=0.337 n=20)
AppendFloat/32Point-12 31.11n ± 1% 31.13n ± 0% ~ (p=0.899 n=20)
AppendFloat/32Exp-12 32.27n ± 0% 32.24n ± 1% ~ (p=0.794 n=20)
AppendFloat/32NegExp-12 30.56n ± 1% 30.64n ± 1% ~ (p=0.899 n=20)
AppendFloat/32Shortest-12 26.88n ± 0% 27.11n ± 1% ~ (p=0.001 n=20)
AppendFloat/32Fixed8Hard-12 20.63n ± 1% 20.63n ± 0% ~ (p=0.596 n=20)
AppendFloat/32Fixed9Hard-12 22.69n ± 1% 22.81n ± 1% ~ (p=0.763 n=20)
AppendFloat/64Fixed1-12 18.65n ± 0% 18.73n ± 1% ~ (p=0.112 n=20)
AppendFloat/64Fixed2-12 18.91n ± 1% 18.88n ± 0% ~ (p=0.569 n=20)
AppendFloat/64Fixed3-12 18.73n ± 1% 18.60n ± 0% ~ (p=0.003 n=20)
AppendFloat/64Fixed4-12 17.87n ± 3% 17.84n ± 1% ~ (p=0.569 n=20)
AppendFloat/64Fixed12-12 28.18n ± 0% 28.30n ± 0% ~ (p=0.010 n=20)
AppendFloat/64Fixed16-12 24.38n ± 1% 24.34n ± 1% ~ (p=0.683 n=20)
AppendFloat/64Fixed12Hard-12 21.61n ± 0% 21.63n ± 1% ~ (p=0.542 n=20)
AppendFloat/64Fixed17Hard-12 27.02n ± 1% 26.94n ± 0% ~ (p=0.077 n=20)
AppendFloat/64Fixed18Hard-12 2.179µ ± 1% 2.189µ ± 1% ~ (p=0.337 n=20)
AppendFloat/Slowpath64-12 29.93n ± 1% 30.01n ± 1% ~ (p=0.402 n=20)
AppendFloat/SlowpathDenormal64-12 28.29n ± 1% 28.35n ± 0% ~ (p=0.952 n=20)
AppendInt-12 400.7n ± 1% 401.8n ± 1% ~ (p=0.176 n=20)
AppendUint-12 95.87n ± 1% 96.06n ± 1% ~ (p=0.208 n=20)
AppendIntSmall-12 3.450n ± 0% 3.455n ± 1% ~ (p=0.203 n=20)
AppendUintVarlen/digits=1-12 3.150n ± 1% 3.175n ± 1% ~ (p=0.147 n=20)
AppendUintVarlen/digits=2-12 2.654n ± 0% 2.667n ± 1% ~ (p=0.003 n=20)
AppendUintVarlen/digits=3-12 5.044n ± 0% 5.069n ± 0% ~ (p=0.026 n=20)
AppendUintVarlen/digits=4-12 5.046n ± 0% 5.047n ± 1% ~ (p=0.408 n=20)
AppendUintVarlen/digits=5-12 5.851n ± 0% 5.860n ± 1% ~ (p=0.132 n=20)
AppendUintVarlen/digits=6-12 6.118n ± 0% 6.120n ± 0% ~ (p=0.888 n=20)
AppendUintVarlen/digits=7-12 7.333n ± 0% 7.334n ± 0% ~ (p=0.588 n=20)
AppendUintVarlen/digits=8-12 7.312n ± 1% 7.322n ± 0% ~ (p=0.805 n=20)
AppendUintVarlen/digits=9-12 7.832n ± 1% 7.838n ± 1% ~ (p=0.465 n=20)
AppendUintVarlen/digits=10-12 8.606n ± 1% 8.602n ± 1% ~ (p=0.974 n=20)
AppendUintVarlen/digits=11-12 8.908n ± 0% 8.899n ± 1% ~ (p=0.931 n=20)
AppendUintVarlen/digits=12-12 9.178n ± 0% 9.118n ± 0% ~ (p=0.007 n=20)
AppendUintVarlen/digits=13-12 9.398n ± 1% 9.405n ± 1% ~ (p=0.888 n=20)
AppendUintVarlen/digits=14-12 10.24n ± 0% 10.22n ± 0% ~ (p=0.154 n=20)
AppendUintVarlen/digits=15-12 10.50n ± 0% 10.48n ± 0% ~ (p=0.692 n=20)
AppendUintVarlen/digits=16-12 11.66n ± 0% 11.75n ± 2% ~ (p=0.087 n=20)
AppendUintVarlen/digits=17-12 11.65n ± 0% 11.72n ± 1% ~ (p=0.079 n=20)
AppendUintVarlen/digits=18-12 12.38n ± 1% 12.42n ± 2% ~ (p=0.035 n=20)
AppendUintVarlen/digits=19-12 13.59n ± 1% 13.60n ± 0% ~ (p=0.673 n=20)
AppendUintVarlen/digits=20-12 13.85n ± 1% 13.84n ± 0% ~ (p=0.634 n=20)
geomean 17.99n 18.01n +0.09%
host: s7
│ e8ffcf3095c │ 3c5742b667a │
│ sec/op │ sec/op vs base │
AppendFloat/Decimal-32 22.24n ± 0% 22.20n ± 0% ~ (p=0.143 n=20)
AppendFloat/Float-32 34.70n ± 0% 34.59n ± 0% ~ (p=0.057 n=20)
AppendFloat/Exp-32 34.85n ± 0% 34.77n ± 0% ~ (p=0.051 n=20)
AppendFloat/NegExp-32 35.19n ± 0% 35.17n ± 0% ~ (p=0.533 n=20)
AppendFloat/LongExp-32 36.80n ± 0% 36.78n ± 0% ~ (p=0.941 n=20)
AppendFloat/Big-32 38.63n ± 0% 38.71n ± 0% ~ (p=0.143 n=20)
AppendFloat/BinaryExp-32 17.39n ± 0% 17.36n ± 0% ~ (p=0.049 n=20)
AppendFloat/32Integer-32 22.29n ± 0% 22.23n ± 0% ~ (p=0.068 n=20)
AppendFloat/32ExactFraction-32 33.52n ± 0% 33.44n ± 0% ~ (p=0.058 n=20)
AppendFloat/32Point-32 32.96n ± 0% 32.93n ± 0% ~ (p=0.256 n=20)
AppendFloat/32Exp-32 35.31n ± 0% 35.24n ± 0% ~ (p=0.014 n=20)
AppendFloat/32NegExp-32 33.56n ± 0% 33.50n ± 0% ~ (p=0.032 n=20)
AppendFloat/32Shortest-32 30.03n ± 0% 29.97n ± 0% ~ (p=0.351 n=20)
AppendFloat/32Fixed8Hard-32 22.93n ± 0% 22.94n ± 0% ~ (p=0.920 n=20)
AppendFloat/32Fixed9Hard-32 26.27n ± 0% 26.22n ± 0% ~ (p=0.693 n=20)
AppendFloat/64Fixed1-32 21.15n ± 0% 21.09n ± 0% ~ (p=0.006 n=20)
AppendFloat/64Fixed2-32 20.75n ± 0% 20.75n ± 0% ~ (p=0.898 n=20)
AppendFloat/64Fixed3-32 21.29n ± 0% 21.28n ± 0% ~ (p=0.524 n=20)
AppendFloat/64Fixed4-32 20.59n ± 0% 20.63n ± 0% ~ (p=0.350 n=20)
AppendFloat/64Fixed12-32 32.53n ± 0% 32.51n ± 0% ~ (p=0.804 n=20)
AppendFloat/64Fixed16-32 28.43n ± 0% 28.34n ± 0% ~ (p=0.060 n=20)
AppendFloat/64Fixed12Hard-32 27.27n ± 0% 27.22n ± 0% ~ (p=0.056 n=20)
AppendFloat/64Fixed17Hard-32 30.76n ± 0% 30.70n ± 0% ~ (p=0.304 n=20)
AppendFloat/64Fixed18Hard-32 1.812µ ± 0% 1.806µ ± 1% ~ (p=0.216 n=20)
AppendFloat/Slowpath64-32 35.48n ± 0% 35.43n ± 0% ~ (p=0.129 n=20)
AppendFloat/SlowpathDenormal64-32 35.62n ± 0% 35.60n ± 0% ~ (p=0.273 n=20)
AppendInt-32 387.5n ± 0% 387.9n ± 0% ~ (p=0.417 n=20)
AppendUint-32 104.9n ± 0% 104.9n ± 0% ~ (p=0.641 n=20)
AppendIntSmall-32 3.329n ± 5% 3.489n ± 5% ~ (p=0.723 n=20)
AppendUintVarlen/digits=1-32 2.396n ± 7% 2.398n ± 8% ~ (p=0.409 n=20)
AppendUintVarlen/digits=2-32 2.399n ± 7% 2.315n ± 4% ~ (p=0.386 n=20)
AppendUintVarlen/digits=3-32 5.516n ± 0% 5.506n ± 0% ~ (p=0.026 n=20)
AppendUintVarlen/digits=4-32 5.515n ± 0% 5.510n ± 0% ~ (p=0.291 n=20)
AppendUintVarlen/digits=5-32 5.748n ± 1% 5.731n ± 0% ~ (p=0.014 n=20)
AppendUintVarlen/digits=6-32 5.873n ± 0% 5.853n ± 0% ~ (p=0.011 n=20)
AppendUintVarlen/digits=7-32 6.460n ± 0% 6.444n ± 0% ~ (p=0.041 n=20)
AppendUintVarlen/digits=8-32 6.457n ± 0% 6.446n ± 0% ~ (p=0.047 n=20)
AppendUintVarlen/digits=9-32 7.377n ± 0% 7.373n ± 0% ~ (p=0.569 n=20)
AppendUintVarlen/digits=10-32 8.496n ± 0% 8.492n ± 0% ~ (p=0.525 n=20)
AppendUintVarlen/digits=11-32 8.674n ± 0% 8.653n ± 0% ~ (p=0.060 n=20)
AppendUintVarlen/digits=12-32 9.416n ± 0% 9.386n ± 0% ~ (p=0.035 n=20)
AppendUintVarlen/digits=13-32 9.621n ± 0% 9.594n ± 0% ~ (p=0.069 n=20)
AppendUintVarlen/digits=14-32 10.34n ± 0% 10.35n ± 0% ~ (p=0.332 n=20)
AppendUintVarlen/digits=15-32 10.48n ± 0% 10.52n ± 0% ~ (p=0.196 n=20)
AppendUintVarlen/digits=16-32 11.27n ± 0% 11.27n ± 0% ~ (p=0.445 n=20)
AppendUintVarlen/digits=17-32 11.50n ± 0% 11.48n ± 0% ~ (p=0.283 n=20)
AppendUintVarlen/digits=18-32 12.15n ± 0% 12.18n ± 0% ~ (p=0.414 n=20)
AppendUintVarlen/digits=19-32 13.42n ± 0% 13.42n ± 0% ~ (p=0.782 n=20)
AppendUintVarlen/digits=20-32 13.70n ± 0% 13.71n ± 0% ~ (p=0.540 n=20)
geomean 18.71n 18.70n -0.08%
host: s7:GOARCH=386
│ e8ffcf3095c │ 3c5742b667a │
│ sec/op │ sec/op vs base │
AppendFloat/Decimal-32 42.03n ± 0% 41.71n ± 1% -0.75% (p=0.000 n=20)
AppendFloat/Float-32 69.99n ± 0% 69.85n ± 0% ~ (p=0.062 n=20)
AppendFloat/Exp-32 73.07n ± 0% 73.13n ± 0% ~ (p=0.240 n=20)
AppendFloat/NegExp-32 72.75n ± 0% 72.72n ± 0% ~ (p=0.298 n=20)
AppendFloat/LongExp-32 74.20n ± 0% 74.13n ± 0% ~ (p=0.952 n=20)
AppendFloat/Big-32 82.88n ± 0% 82.91n ± 0% ~ (p=0.909 n=20)
AppendFloat/BinaryExp-32 32.12n ± 0% 32.23n ± 0% ~ (p=0.014 n=20)
AppendFloat/32Integer-32 41.18n ± 0% 41.15n ± 0% ~ (p=0.212 n=20)
AppendFloat/32ExactFraction-32 62.65n ± 0% 62.38n ± 0% -0.43% (p=0.000 n=20)
AppendFloat/32Point-32 59.98n ± 0% 59.82n ± 0% ~ (p=0.109 n=20)
AppendFloat/32Exp-32 72.62n ± 0% 72.69n ± 0% ~ (p=0.417 n=20)
AppendFloat/32NegExp-32 62.36n ± 0% 62.49n ± 0% ~ (p=0.578 n=20)
AppendFloat/32Shortest-32 58.03n ± 0% 57.95n ± 0% ~ (p=0.615 n=20)
AppendFloat/32Fixed8Hard-32 36.75n ± 0% 36.34n ± 0% -1.12% (p=0.000 n=20)
AppendFloat/32Fixed9Hard-32 53.83n ± 0% 53.96n ± 0% ~ (p=0.126 n=20)
AppendFloat/64Fixed1-32 48.52n ± 0% 48.72n ± 0% ~ (p=0.075 n=20)
AppendFloat/64Fixed2-32 46.50n ± 0% 46.74n ± 0% +0.53% (p=0.000 n=20)
AppendFloat/64Fixed3-32 46.43n ± 0% 46.24n ± 1% ~ (p=0.147 n=20)
AppendFloat/64Fixed4-32 42.52n ± 0% 42.69n ± 0% ~ (p=0.038 n=20)
AppendFloat/64Fixed12-32 54.51n ± 1% 54.85n ± 0% +0.63% (p=0.000 n=20)
AppendFloat/64Fixed16-32 52.61n ± 0% 52.94n ± 0% +0.63% (p=0.000 n=20)
AppendFloat/64Fixed12Hard-32 50.78n ± 0% 51.45n ± 0% +1.31% (p=0.000 n=20)
AppendFloat/64Fixed17Hard-32 59.91n ± 0% 59.91n ± 0% ~ (p=0.713 n=20)
AppendFloat/64Fixed18Hard-32 3.984µ ± 1% 4.000µ ± 1% ~ (p=0.569 n=20)
AppendFloat/Slowpath64-32 73.42n ± 0% 73.37n ± 0% ~ (p=0.425 n=20)
AppendFloat/SlowpathDenormal64-32 73.27n ± 0% 73.36n ± 0% ~ (p=0.298 n=20)
AppendInt-32 1.036µ ± 1% 1.041µ ± 1% ~ (p=0.024 n=20)
AppendUint-32 261.1n ± 0% 262.1n ± 1% +0.42% (p=0.000 n=20)
AppendIntSmall-32 5.515n ± 0% 5.506n ± 0% ~ (p=0.394 n=20)
AppendUintVarlen/digits=1-32 3.679n ± 0% 3.685n ± 0% ~ (p=0.815 n=20)
AppendUintVarlen/digits=2-32 3.683n ± 0% 3.687n ± 0% ~ (p=0.899 n=20)
AppendUintVarlen/digits=3-32 8.988n ± 2% 8.843n ± 1% -1.61% (p=0.000 n=20)
AppendUintVarlen/digits=4-32 9.300n ± 1% 9.106n ± 1% -2.09% (p=0.000 n=20)
AppendUintVarlen/digits=5-32 10.235n ± 1% 9.829n ± 1% -3.97% (p=0.000 n=20)
AppendUintVarlen/digits=6-32 10.44n ± 1% 10.03n ± 0% -3.88% (p=0.000 n=20)
AppendUintVarlen/digits=7-32 11.27n ± 1% 10.94n ± 1% -2.93% (p=0.000 n=20)
AppendUintVarlen/digits=8-32 11.46n ± 1% 11.13n ± 1% -2.88% (p=0.000 n=20)
AppendUintVarlen/digits=9-32 12.74n ± 0% 12.27n ± 1% -3.69% (p=0.000 n=20)
AppendUintVarlen/digits=10-32 15.57n ± 0% 15.71n ± 1% +0.90% (p=0.000 n=20)
AppendUintVarlen/digits=11-32 15.65n ± 1% 15.98n ± 0% +2.11% (p=0.000 n=20)
AppendUintVarlen/digits=12-32 16.54n ± 0% 16.73n ± 0% +1.21% (p=0.000 n=20)
AppendUintVarlen/digits=13-32 16.69n ± 0% 17.04n ± 0% +2.07% (p=0.000 n=20)
AppendUintVarlen/digits=14-32 17.52n ± 1% 17.62n ± 0% ~ (p=0.005 n=20)
AppendUintVarlen/digits=15-32 17.76n ± 0% 17.86n ± 0% +0.56% (p=0.001 n=20)
AppendUintVarlen/digits=16-32 18.68n ± 1% 18.59n ± 0% ~ (p=0.006 n=20)
AppendUintVarlen/digits=17-32 18.78n ± 1% 18.74n ± 0% ~ (p=0.040 n=20)
AppendUintVarlen/digits=18-32 19.63n ± 1% 19.54n ± 0% ~ (p=0.202 n=20)
AppendUintVarlen/digits=19-32 24.02n ± 1% 24.23n ± 1% +0.87% (p=0.000 n=20)
AppendUintVarlen/digits=20-32 23.87n ± 1% 24.20n ± 1% +1.40% (p=0.000 n=20)
geomean 35.08n 35.00n -0.21%
host: linux-amd64
│ e8ffcf3095c │ 3c5742b667a │
│ sec/op │ sec/op vs base │
AppendFloat/Decimal-16 62.16n ± 1% 61.81n ± 0% ~ (p=0.060 n=20)
AppendFloat/Float-16 91.66n ± 1% 91.22n ± 1% ~ (p=0.606 n=20)
AppendFloat/Exp-16 95.42n ± 2% 95.22n ± 1% ~ (p=0.417 n=20)
AppendFloat/NegExp-16 96.88n ± 1% 95.89n ± 1% ~ (p=0.185 n=20)
AppendFloat/LongExp-16 102.0n ± 1% 101.6n ± 1% ~ (p=0.794 n=20)
AppendFloat/Big-16 110.8n ± 1% 110.8n ± 1% ~ (p=0.984 n=20)
AppendFloat/BinaryExp-16 46.33n ± 1% 46.19n ± 1% ~ (p=0.723 n=20)
AppendFloat/32Integer-16 62.62n ± 2% 61.88n ± 1% ~ (p=0.286 n=20)
AppendFloat/32ExactFraction-16 89.09n ± 3% 88.25n ± 2% ~ (p=0.101 n=20)
AppendFloat/32Point-16 86.17n ± 1% 86.90n ± 1% ~ (p=0.251 n=20)
AppendFloat/32Exp-16 101.7n ± 1% 101.2n ± 1% ~ (p=0.379 n=20)
AppendFloat/32NegExp-16 92.17n ± 1% 92.81n ± 1% ~ (p=0.165 n=20)
AppendFloat/32Shortest-16 82.38n ± 1% 82.89n ± 1% ~ (p=0.185 n=20)
AppendFloat/32Fixed8Hard-16 60.32n ± 1% 60.41n ± 1% ~ (p=0.337 n=20)
AppendFloat/32Fixed9Hard-16 69.58n ± 1% 69.22n ± 1% ~ (p=0.794 n=20)
AppendFloat/64Fixed1-16 57.56n ± 1% 57.65n ± 1% ~ (p=0.597 n=20)
AppendFloat/64Fixed2-16 55.84n ± 1% 55.54n ± 1% ~ (p=0.059 n=20)
AppendFloat/64Fixed3-16 57.12n ± 2% 56.55n ± 1% ~ (p=0.449 n=20)
AppendFloat/64Fixed4-16 55.38n ± 2% 54.50n ± 2% ~ (p=0.010 n=20)
AppendFloat/64Fixed12-16 88.28n ± 1% 86.67n ± 1% -1.83% (p=0.000 n=20)
AppendFloat/64Fixed16-16 73.41n ± 1% 73.56n ± 2% ~ (p=0.794 n=20)
AppendFloat/64Fixed12Hard-16 72.08n ± 1% 71.71n ± 1% ~ (p=0.116 n=20)
AppendFloat/64Fixed17Hard-16 79.78n ± 1% 79.78n ± 1% ~ (p=0.224 n=20)
AppendFloat/64Fixed18Hard-16 4.720µ ± 1% 4.746µ ± 1% ~ (p=0.877 n=20)
AppendFloat/Slowpath64-16 98.71n ± 1% 98.79n ± 1% ~ (p=0.678 n=20)
AppendFloat/SlowpathDenormal64-16 97.58n ± 2% 98.16n ± 2% ~ (p=0.862 n=20)
AppendInt-16 1.185µ ± 1% 1.194µ ± 1% ~ (p=0.457 n=20)
AppendUint-16 292.6n ± 1% 293.9n ± 1% ~ (p=0.351 n=20)
AppendIntSmall-16 7.197n ± 1% 7.203n ± 1% ~ (p=0.952 n=20)
AppendUintVarlen/digits=1-16 5.905n ± 1% 5.897n ± 2% ~ (p=0.474 n=20)
AppendUintVarlen/digits=2-16 5.770n ± 1% 5.733n ± 1% ~ (p=0.180 n=20)
AppendUintVarlen/digits=3-16 14.00n ± 2% 14.00n ± 1% ~ (p=0.909 n=20)
AppendUintVarlen/digits=4-16 13.99n ± 1% 14.03n ± 1% ~ (p=0.578 n=20)
AppendUintVarlen/digits=5-16 15.88n ± 2% 15.83n ± 1% ~ (p=0.542 n=20)
AppendUintVarlen/digits=6-16 16.25n ± 1% 16.30n ± 1% ~ (p=0.899 n=20)
AppendUintVarlen/digits=7-16 17.66n ± 1% 17.70n ± 1% ~ (p=0.440 n=20)
AppendUintVarlen/digits=8-16 18.54n ± 1% 18.58n ± 2% ~ (p=0.262 n=20)
AppendUintVarlen/digits=9-16 20.25n ± 2% 20.43n ± 1% ~ (p=0.007 n=20)
AppendUintVarlen/digits=10-16 23.88n ± 1% 24.00n ± 1% ~ (p=0.473 n=20)
AppendUintVarlen/digits=11-16 24.42n ± 1% 24.57n ± 2% ~ (p=0.743 n=20)
AppendUintVarlen/digits=12-16 25.54n ± 2% 25.88n ± 1% ~ (p=0.499 n=20)
AppendUintVarlen/digits=13-16 26.55n ± 1% 26.60n ± 1% ~ (p=0.774 n=20)
AppendUintVarlen/digits=14-16 28.18n ± 1% 28.16n ± 1% ~ (p=0.606 n=20)
AppendUintVarlen/digits=15-16 28.66n ± 1% 28.85n ± 0% ~ (p=0.031 n=20)
AppendUintVarlen/digits=16-16 29.84n ± 1% 30.00n ± 1% ~ (p=0.151 n=20)
AppendUintVarlen/digits=17-16 30.54n ± 1% 30.60n ± 1% ~ (p=0.952 n=20)
AppendUintVarlen/digits=18-16 32.01n ± 1% 32.26n ± 2% ~ (p=0.239 n=20)
AppendUintVarlen/digits=19-16 35.50n ± 1% 35.56n ± 1% ~ (p=0.256 n=20)
AppendUintVarlen/digits=20-16 35.94n ± 1% 35.96n ± 1% ~ (p=0.867 n=20)
geomean 50.35n 50.35n -0.01%
host: linux-386
│ e8ffcf3095c │ 3c5742b667a │
│ sec/op │ sec/op vs base │
AppendFloat/Decimal-16 122.9n ± 0% 122.9n ± 0% ~ (p=0.351 n=20)
AppendFloat/Float-16 226.7n ± 0% 227.1n ± 0% ~ (p=0.003 n=20)
AppendFloat/Exp-16 238.3n ± 0% 238.3n ± 0% ~ (p=0.301 n=20)
AppendFloat/NegExp-16 239.2n ± 0% 239.5n ± 0% ~ (p=0.015 n=20)
AppendFloat/LongExp-16 237.6n ± 0% 237.8n ± 0% ~ (p=0.357 n=20)
AppendFloat/Big-16 275.6n ± 0% 275.7n ± 0% ~ (p=0.576 n=20)
AppendFloat/BinaryExp-16 90.33n ± 0% 87.69n ± 0% -2.92% (p=0.000 n=20)
AppendFloat/32Integer-16 121.7n ± 0% 121.8n ± 0% ~ (p=0.340 n=20)
AppendFloat/32ExactFraction-16 209.4n ± 0% 209.4n ± 0% ~ (p=0.566 n=20)
AppendFloat/32Point-16 196.1n ± 0% 196.5n ± 0% ~ (p=0.036 n=20)
AppendFloat/32Exp-16 246.3n ± 0% 246.4n ± 0% ~ (p=0.407 n=20)
AppendFloat/32NegExp-16 205.4n ± 0% 205.4n ± 0% ~ (p=0.221 n=20)
AppendFloat/32Shortest-16 187.8n ± 0% 187.8n ± 0% ~ (p=0.671 n=20)
AppendFloat/32Fixed8Hard-16 112.3n ± 0% 107.6n ± 0% -4.19% (p=0.000 n=20)
AppendFloat/32Fixed9Hard-16 182.3n ± 0% 182.1n ± 0% ~ (p=0.098 n=20)
AppendFloat/64Fixed1-16 167.0n ± 0% 165.7n ± 0% -0.78% (p=0.000 n=20)
AppendFloat/64Fixed2-16 161.9n ± 0% 160.7n ± 0% -0.74% (p=0.000 n=20)
AppendFloat/64Fixed3-16 157.7n ± 0% 156.4n ± 0% -0.82% (p=0.000 n=20)
AppendFloat/64Fixed4-16 134.4n ± 0% 133.5n ± 0% -0.63% (p=0.000 n=20)
AppendFloat/64Fixed12-16 178.2n ± 0% 176.4n ± 0% -1.01% (p=0.000 n=20)
AppendFloat/64Fixed16-16 168.7n ± 0% 166.4n ± 0% -1.33% (p=0.000 n=20)
AppendFloat/64Fixed12Hard-16 162.8n ± 0% 162.2n ± 0% -0.34% (p=0.000 n=20)
AppendFloat/64Fixed17Hard-16 201.9n ± 0% 198.6n ± 0% -1.66% (p=0.000 n=20)
AppendFloat/64Fixed18Hard-16 14.45µ ± 0% 14.46µ ± 0% ~ (p=0.189 n=20)
AppendFloat/Slowpath64-16 232.8n ± 0% 232.8n ± 0% ~ (p=0.995 n=20)
AppendFloat/SlowpathDenormal64-16 229.0n ± 0% 228.9n ± 0% ~ (p=0.605 n=20)
AppendInt-16 3.123µ ± 0% 3.099µ ± 0% -0.77% (p=0.000 n=20)
AppendUint-16 832.0n ± 0% 820.8n ± 0% -1.35% (p=0.000 n=20)
AppendIntSmall-16 13.27n ± 0% 13.28n ± 0% ~ (p=0.127 n=20)
AppendUintVarlen/digits=1-16 10.19n ± 0% 10.20n ± 0% ~ (p=0.414 n=20)
AppendUintVarlen/digits=2-16 10.19n ± 0% 10.19n ± 0% ~ (p=0.700 n=20)
AppendUintVarlen/digits=3-16 21.47n ± 0% 20.51n ± 0% -4.49% (p=0.000 n=20)
AppendUintVarlen/digits=4-16 21.68n ± 0% 21.05n ± 0% -2.88% (p=0.000 n=20)
AppendUintVarlen/digits=5-16 26.28n ± 0% 23.94n ± 0% -8.92% (p=0.000 n=20)
AppendUintVarlen/digits=6-16 26.77n ± 0% 24.67n ± 0% -7.84% (p=0.000 n=20)
AppendUintVarlen/digits=7-16 30.65n ± 0% 27.25n ± 0% -11.08% (p=0.000 n=20)
AppendUintVarlen/digits=8-16 31.27n ± 0% 28.11n ± 0% -10.09% (p=0.000 n=20)
AppendUintVarlen/digits=9-16 36.55n ± 0% 32.53n ± 0% -10.98% (p=0.000 n=20)
AppendUintVarlen/digits=10-16 42.53n ± 0% 42.06n ± 0% -1.09% (p=0.000 n=20)
AppendUintVarlen/digits=11-16 42.21n ± 0% 42.51n ± 0% +0.72% (p=0.000 n=20)
AppendUintVarlen/digits=12-16 45.44n ± 0% 44.41n ± 0% -2.26% (p=0.000 n=20)
AppendUintVarlen/digits=13-16 46.04n ± 0% 45.06n ± 0% -2.13% (p=0.000 n=20)
AppendUintVarlen/digits=14-16 49.35n ± 0% 47.73n ± 0% -3.27% (p=0.000 n=20)
AppendUintVarlen/digits=15-16 50.04n ± 0% 48.45n ± 0% -3.18% (p=0.000 n=20)
AppendUintVarlen/digits=16-16 53.51n ± 0% 51.21n ± 0% -4.31% (p=0.000 n=20)
AppendUintVarlen/digits=17-16 53.60n ± 0% 51.19n ± 0% -4.50% (p=0.000 n=20)
AppendUintVarlen/digits=18-16 57.21n ± 0% 54.03n ± 0% -5.54% (p=0.000 n=20)
AppendUintVarlen/digits=19-16 64.41n ± 0% 64.68n ± 0% +0.41% (p=0.000 n=20)
AppendUintVarlen/digits=20-16 64.51n ± 0% 65.04n ± 0% +0.82% (p=0.000 n=20)
geomean 104.9n 102.8n -2.02%
host: linux-ppc64le
│ e8ffcf3095c │ 3c5742b667a │
│ sec/op │ sec/op vs base │
AppendFloat/Decimal-5 53.78n ± 1% 53.62n ± 1% ~ (p=0.588 n=20)
AppendFloat/Float-5 76.29n ± 2% 75.77n ± 2% ~ (p=0.402 n=20)
AppendFloat/Exp-5 83.73n ± 0% 82.25n ± 2% ~ (p=0.009 n=20)
AppendFloat/NegExp-5 84.22n ± 1% 83.15n ± 1% ~ (p=0.031 n=20)
AppendFloat/LongExp-5 88.66n ± 1% 88.34n ± 1% ~ (p=0.213 n=20)
AppendFloat/Big-5 93.25n ± 0% 92.73n ± 1% ~ (p=0.007 n=20)
AppendFloat/BinaryExp-5 40.69n ± 0% 44.88n ± 1% +10.31% (p=0.000 n=20)
AppendFloat/32Integer-5 54.17n ± 0% 54.39n ± 1% ~ (p=0.245 n=20)
AppendFloat/32ExactFraction-5 79.89n ± 1% 79.41n ± 1% ~ (p=0.457 n=20)
AppendFloat/32Point-5 74.81n ± 1% 74.89n ± 0% ~ (p=0.625 n=20)
AppendFloat/32Exp-5 85.59n ± 1% 85.42n ± 1% ~ (p=0.331 n=20)
AppendFloat/32NegExp-5 82.74n ± 1% 82.22n ± 1% ~ (p=0.025 n=20)
AppendFloat/32Shortest-5 69.72n ± 0% 69.79n ± 1% ~ (p=0.625 n=20)
AppendFloat/32Fixed8Hard-5 54.60n ± 0% 57.54n ± 0% +5.39% (p=0.000 n=20)
AppendFloat/32Fixed9Hard-5 58.49n ± 1% 65.56n ± 0% +12.09% (p=0.000 n=20)
AppendFloat/64Fixed1-5 47.07n ± 1% 47.81n ± 1% ~ (p=0.002 n=20)
AppendFloat/64Fixed2-5 47.88n ± 1% 48.52n ± 1% ~ (p=0.007 n=20)
AppendFloat/64Fixed3-5 47.47n ± 1% 48.32n ± 1% ~ (p=0.007 n=20)
AppendFloat/64Fixed4-5 45.12n ± 1% 46.26n ± 1% +2.55% (p=0.000 n=20)
AppendFloat/64Fixed12-5 79.27n ± 0% 83.78n ± 1% +5.68% (p=0.000 n=20)
AppendFloat/64Fixed16-5 69.28n ± 1% 70.69n ± 0% ~ (p=0.001 n=20)
AppendFloat/64Fixed12Hard-5 65.42n ± 0% 68.31n ± 1% +4.43% (p=0.000 n=20)
AppendFloat/64Fixed17Hard-5 73.89n ± 0% 77.30n ± 1% +4.63% (p=0.000 n=20)
AppendFloat/64Fixed18Hard-5 5.163µ ± 1% 5.169µ ± 0% ~ (p=0.733 n=20)
AppendFloat/Slowpath64-5 86.31n ± 1% 86.70n ± 2% ~ (p=0.578 n=20)
AppendFloat/SlowpathDenormal64-5 83.10n ± 1% 82.97n ± 1% ~ (p=0.218 n=20)
AppendInt-5 1.013µ ± 1% 1.125µ ± 0% +11.06% (p=0.000 n=20)
AppendUint-5 268.2n ± 0% 287.7n ± 1% +7.27% (p=0.000 n=20)
AppendIntSmall-5 6.644n ± 3% 6.936n ± 2% ~ (p=0.023 n=20)
AppendUintVarlen/digits=1-5 5.556n ± 4% 5.381n ± 3% ~ (p=0.108 n=20)
AppendUintVarlen/digits=2-5 5.165n ± 1% 5.413n ± 1% +4.80% (p=0.000 n=20)
AppendUintVarlen/digits=3-5 10.26n ± 1% 11.29n ± 2% +10.04% (p=0.000 n=20)
AppendUintVarlen/digits=4-5 10.11n ± 1% 11.12n ± 1% +9.99% (p=0.000 n=20)
AppendUintVarlen/digits=5-5 12.37n ± 2% 13.26n ± 1% +7.19% (p=0.000 n=20)
AppendUintVarlen/digits=6-5 12.85n ± 3% 13.52n ± 1% +5.25% (p=0.000 n=20)
AppendUintVarlen/digits=7-5 15.46n ± 7% 16.52n ± 1% ~ (p=0.005 n=20)
AppendUintVarlen/digits=8-5 14.99n ± 1% 16.60n ± 1% +10.74% (p=0.000 n=20)
AppendUintVarlen/digits=9-5 18.13n ± 1% 20.23n ± 1% +11.56% (p=0.000 n=20)
AppendUintVarlen/digits=10-5 19.05n ± 3% 25.62n ± 1% +34.49% (p=0.000 n=20)
AppendUintVarlen/digits=11-5 21.64n ± 2% 26.11n ± 1% +20.63% (p=0.000 n=20)
AppendUintVarlen/digits=12-5 21.91n ± 1% 27.91n ± 0% +27.38% (p=0.000 n=20)
AppendUintVarlen/digits=13-5 24.60n ± 1% 28.38n ± 1% +15.37% (p=0.000 n=20)
AppendUintVarlen/digits=14-5 25.80n ± 1% 30.79n ± 0% +19.32% (p=0.000 n=20)
AppendUintVarlen/digits=15-5 28.90n ± 1% 31.38n ± 3% +8.55% (p=0.000 n=20)
AppendUintVarlen/digits=16-5 28.13n ± 2% 32.54n ± 0% +15.69% (p=0.000 n=20)
AppendUintVarlen/digits=17-5 30.82n ± 1% 33.16n ± 1% +7.61% (p=0.000 n=20)
AppendUintVarlen/digits=18-5 32.03n ± 0% 36.12n ± 1% +12.74% (p=0.000 n=20)
AppendUintVarlen/digits=19-5 35.99n ± 3% 40.97n ± 1% +13.82% (p=0.000 n=20)
AppendUintVarlen/digits=20-5 35.15n ± 1% 40.71n ± 0% +15.80% (p=0.000 n=20)
geomean 44.34n 47.15n +6.34%
Change-Id: Ia6a3971a76f39d6187b10d6944071ee1c1b47316
Reviewed-on: https://go-review.googlesource.com/c/go/+/716462
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
Auto-Submit: Russ Cox <rsc@golang.org>1 parent 6aca04a commit cbbd385Copy full SHA for cbbd385
File tree
Expand file treeCollapse file tree
1 file changed
+7
-38
lines changedOpen diff view settings
Filter options
- src/internal/strconv
Expand file treeCollapse file tree
1 file changed
+7
-38
lines changedOpen diff view settings
Collapse file
src/internal/strconv/itoa.go
Copy file name to clipboardExpand all lines: src/internal/strconv/itoa.go+7-38Lines changed: 7 additions & 38 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
| 7 | + | |
11 | 8 | | |
12 | 9 | | |
13 | 10 | | |
| |||
184 | 181 | | |
185 | 182 | | |
186 | 183 | | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
220 | 189 | | |
221 | | - | |
| 190 | + | |
222 | 191 | | |
223 | 192 | | |
224 | 193 | | |
| |||
0 commit comments