Skip to content

internal/bytealg: add assembly support for index algorithm on riscv64 - #129

Open
newborn22 wants to merge 4 commits into
go1.25.6-zte-devfrom
index_riscv64
Open

newborn22 wants to merge 4 commits into
go1.25.6-zte-devfrom
index_riscv64

Conversation

@newborn22

@newborn22 newborn22 commented Mar 25, 2026

Copy link
Copy Markdown
Collaborator

Related Issue(s) & Descriptions

Summary

This PR adds a RISC-V optimized substring search path for short patterns (2 <= len(pattern) <= 32) and gates its use behind the misaligned_fast extension at build time.

The algorithm performs a byte-by-byte sliding scan over the text and compares len(pattern) bytes at each position, with length-specialized implementations to reduce overhead.

Details

Uses brute-force matching semantics: advance text pointer by 1 byte each step and test for full pattern equality.
Specializes by pattern length:

  • For < 8 bytes: uses precise MOVB/MOVW combinations to load exactly the needed bytes.
  • For >= 8 bytes: uses MOV-based overlapping chunk comparisons for faster matching.

Requires efficient unaligned memory access; fast path is enabled only when GORISCV64EXT=misaligned_fast is specified.

Results

goos: linux
goarch: riscv64
pkg: bytes
cpu: SG2044
                              │ index_base.txt │            index_opt.txt             │
                              │     sec/op     │    sec/op      vs base               │
IndexByte/10                      19.07n ± 13%    17.18n ± 14%   -9.86% (p=0.026 n=6)
IndexByte/32                      9.864n ± 17%    9.029n ± 15%        ~ (p=0.093 n=6)
IndexByte/4K                      214.3n ±  9%    207.6n ± 21%        ~ (p=0.420 n=6)
IndexByte/4M                     1070.8µ ± 24%    195.4µ ±  9%  -81.76% (p=0.002 n=6)
IndexByte/64M                     3.317m ± 29%    3.428m ± 10%        ~ (p=0.818 n=6)
IndexBytePortable/10              29.54n ± 21%    27.36n ± 21%        ~ (p=0.240 n=6)
IndexBytePortable/32              55.20n ± 33%    53.00n ± 20%        ~ (p=0.310 n=6)
IndexBytePortable/4K              5.722µ ±  5%    5.086µ ± 13%  -11.11% (p=0.026 n=6)
IndexBytePortable/4M              4.549m ± 32%    4.763m ± 20%        ~ (p=0.589 n=6)
IndexBytePortable/64M             69.90m ±  5%    66.73m ±  4%        ~ (p=0.132 n=6)
IndexRune/10                      35.16n ±  9%    34.97n ±  6%        ~ (p=1.000 n=6)
IndexRune/32                      50.67n ±  9%    50.61n ± 26%        ~ (p=0.818 n=6)
IndexRune/4K                      320.0n ± 19%    329.7n ± 11%        ~ (p=0.394 n=6)
IndexRune/4M                      290.1µ ± 42%    277.2µ ± 17%        ~ (p=0.699 n=6)
IndexRune/64M                     4.587m ± 11%    4.392m ±  4%        ~ (p=0.240 n=6)
IndexRuneASCII/10                 18.70n ± 25%    17.12n ± 11%        ~ (p=0.132 n=6)
IndexRuneASCII/32                 19.61n ±  5%    20.55n ± 14%        ~ (p=0.310 n=6)
IndexRuneASCII/4K                 224.2n ± 33%    197.1n ±  5%  -12.13% (p=0.004 n=6)
IndexRuneASCII/4M                 217.9µ ± 20%    209.3µ ± 29%        ~ (p=0.818 n=6)
IndexRuneASCII/64M                3.387m ±  5%    3.274m ±  7%        ~ (p=0.310 n=6)
IndexRuneUnicode/Latin/10         32.08n ± 19%    29.48n ± 26%        ~ (p=0.132 n=6)
IndexRuneUnicode/Latin/32         55.14n ± 63%    45.46n ±  7%  -17.56% (p=0.002 n=6)
IndexRuneUnicode/Latin/4K         784.9n ±  9%    825.9n ±  5%        ~ (p=0.310 n=6)
IndexRuneUnicode/Latin/4M         1.845m ± 12%    1.494m ±  7%  -19.00% (p=0.002 n=6)
IndexRuneUnicode/Latin/64M        28.42m ± 41%    28.65m ± 68%        ~ (p=0.485 n=6)
IndexRuneUnicode/Cyrillic/10      39.11n ± 20%    34.43n ±  9%        ~ (p=0.065 n=6)
IndexRuneUnicode/Cyrillic/32      43.68n ± 26%    43.98n ± 27%        ~ (p=0.699 n=6)
IndexRuneUnicode/Cyrillic/4K      2.166µ ± 13%    1.991µ ±  7%        ~ (p=0.132 n=6)
IndexRuneUnicode/Cyrillic/4M      2.192m ±  7%    2.175m ±  9%        ~ (p=0.699 n=6)
IndexRuneUnicode/Cyrillic/64M     41.54m ± 14%    45.85m ± 27%        ~ (p=0.589 n=6)
IndexRuneUnicode/Han/10           43.38n ±  5%    42.75n ± 39%        ~ (p=0.818 n=6)
IndexRuneUnicode/Han/32           46.00n ±  8%    49.92n ± 21%        ~ (p=0.065 n=6)
IndexRuneUnicode/Han/4K           1.274µ ± 18%    1.097µ ± 10%        ~ (p=0.071 n=6)
IndexRuneUnicode/Han/4M           1.695m ± 16%    1.654m ± 20%        ~ (p=0.818 n=6)
IndexRuneUnicode/Han/64M          32.54m ± 14%    38.02m ± 32%  +16.84% (p=0.015 n=6)
Index/10                          83.89n ±  8%    32.14n ±  3%  -61.69% (p=0.002 n=6)
Index/32                          222.7n ± 10%    186.4n ±  6%  -16.28% (p=0.002 n=6)
Index/4K                          13.90µ ± 11%    10.55µ ± 18%  -24.12% (p=0.002 n=6)
Index/4M                          14.01m ± 11%    10.91m ± 13%  -22.11% (p=0.002 n=6)
Index/64M                         237.4m ±  8%    175.4m ± 19%  -26.12% (p=0.002 n=6)
IndexEasy/10                      28.75n ± 20%    27.51n ±  6%        ~ (p=0.132 n=6)
IndexEasy/32                      48.97n ±  6%    48.06n ± 46%        ~ (p=1.000 n=6)
IndexEasy/4K                      324.4n ± 14%    330.7n ±  9%        ~ (p=1.000 n=6)
IndexEasy/4M                      794.1µ ±  6%   1020.6µ ± 14%  +28.53% (p=0.002 n=6)
IndexEasy/64M                     16.00m ± 25%    16.62m ± 13%        ~ (p=0.937 n=6)
IndexHard1                        3.616m ± 33%    2.574m ±  8%  -28.81% (p=0.002 n=6)
IndexHard2                       3555.4µ ±  5%    956.7µ ±  4%  -73.09% (p=0.002 n=6)
IndexHard3                        3.740m ± 12%    1.592m ± 12%  -57.43% (p=0.002 n=6)
IndexHard4                        3.851m ± 11%    3.614m ±  4%        ~ (p=0.180 n=6)
LastIndexHard1                    3.613m ±  7%    3.552m ± 10%        ~ (p=0.937 n=6)
LastIndexHard2                    3.896m ± 22%    3.764m ± 26%        ~ (p=0.818 n=6)
LastIndexHard3                    3.477m ±  4%    3.379m ± 20%        ~ (p=0.818 n=6)
IndexAnyASCII/1:1                 11.72n ±  8%    10.48n ± 18%        ~ (p=0.093 n=6)
IndexAnyASCII/1:2                 13.31n ± 12%    12.12n ± 16%        ~ (p=0.065 n=6)
IndexAnyASCII/1:4                 17.12n ± 15%    14.46n ±  4%  -15.57% (p=0.004 n=6)
IndexAnyASCII/1:8                 19.94n ±  3%    20.41n ± 15%        ~ (p=0.818 n=6)
IndexAnyASCII/1:16                31.94n ±  5%    31.12n ±  8%        ~ (p=0.699 n=6)
IndexAnyASCII/1:32                13.99n ±  9%    13.88n ±  9%        ~ (p=0.937 n=6)
IndexAnyASCII/1:64                19.62n ± 36%    19.51n ± 24%        ~ (p=0.818 n=6)
IndexAnyASCII/16:1                34.19n ± 15%    33.79n ± 13%        ~ (p=0.818 n=6)
IndexAnyASCII/16:2                77.40n ±  7%    67.13n ±  9%  -13.27% (p=0.002 n=6)
IndexAnyASCII/16:4                68.27n ±  6%    72.61n ±  8%        ~ (p=0.093 n=6)
IndexAnyASCII/16:8                93.87n ± 14%    80.03n ± 15%  -14.74% (p=0.026 n=6)
IndexAnyASCII/16:16               106.8n ± 11%    109.8n ± 12%        ~ (p=0.589 n=6)
IndexAnyASCII/16:32               159.4n ±  5%    190.4n ± 20%  +19.45% (p=0.041 n=6)
IndexAnyASCII/16:64               252.4n ±  8%    235.1n ± 13%        ~ (p=0.180 n=6)
IndexAnyASCII/256:1               30.25n ±  9%    31.73n ±  9%   +4.89% (p=0.041 n=6)
IndexAnyASCII/256:2               661.2n ± 19%    644.4n ±  5%        ~ (p=0.310 n=6)
IndexAnyASCII/256:4               648.8n ± 13%    670.9n ± 11%        ~ (p=0.589 n=6)
IndexAnyASCII/256:8               702.2n ± 13%    650.5n ± 13%        ~ (p=0.240 n=6)
IndexAnyASCII/256:16              705.9n ±  7%    750.1n ± 11%        ~ (p=0.180 n=6)
IndexAnyASCII/256:32              768.6n ±  9%    735.5n ± 42%        ~ (p=0.485 n=6)
IndexAnyASCII/256:64              802.2n ± 11%    832.6n ±  6%        ~ (p=0.420 n=6)
IndexAnyUTF8/1:1                  11.70n ± 11%    11.51n ±  7%        ~ (p=0.777 n=6)
IndexAnyUTF8/1:2                  12.49n ± 14%    13.05n ± 10%        ~ (p=0.121 n=6)
IndexAnyUTF8/1:4                  15.25n ± 11%    16.20n ± 10%        ~ (p=0.310 n=6)
IndexAnyUTF8/1:8                  21.21n ± 15%    21.95n ± 18%        ~ (p=0.699 n=6)
IndexAnyUTF8/1:16                 32.28n ± 15%    30.87n ± 10%        ~ (p=0.589 n=6)
IndexAnyUTF8/1:32                 13.05n ±  7%    13.56n ± 17%        ~ (p=0.394 n=6)
IndexAnyUTF8/1:64                 21.93n ± 12%    21.16n ± 12%        ~ (p=0.937 n=6)
IndexAnyUTF8/16:1                 183.1n ± 11%    192.4n ± 11%        ~ (p=0.240 n=6)
IndexAnyUTF8/16:2                 171.2n ± 10%    159.2n ±  8%        ~ (p=0.310 n=6)
IndexAnyUTF8/16:4                 182.4n ±  7%    205.1n ±  7%  +12.41% (p=0.009 n=6)
IndexAnyUTF8/16:8                 493.4n ± 16%    345.7n ± 24%  -29.95% (p=0.004 n=6)
IndexAnyUTF8/16:16                482.0n ± 14%    439.2n ± 24%   -8.88% (p=0.037 n=6)
IndexAnyUTF8/16:32                214.7n ±  7%    217.7n ±  6%        ~ (p=0.937 n=6)
IndexAnyUTF8/16:64                232.9n ±  8%    241.5n ± 16%        ~ (p=0.370 n=6)
IndexAnyUTF8/256:1                2.380µ ± 16%    2.442µ ± 11%        ~ (p=0.394 n=6)
IndexAnyUTF8/256:2                2.111µ ± 15%    2.168µ ± 10%        ~ (p=0.589 n=6)
IndexAnyUTF8/256:4                2.707µ ± 20%    2.674µ ± 12%        ~ (p=0.240 n=6)
IndexAnyUTF8/256:8                7.575µ ± 26%    5.609µ ± 16%  -25.95% (p=0.002 n=6)
IndexAnyUTF8/256:16               6.947µ ± 25%    6.777µ ±  8%        ~ (p=0.310 n=6)
IndexAnyUTF8/256:32               2.929µ ± 19%    3.270µ ± 20%        ~ (p=0.310 n=6)
IndexAnyUTF8/256:64               3.094µ ± 14%    3.379µ ± 20%        ~ (p=0.065 n=6)
LastIndexAnyASCII/1:1             11.71n ± 17%    11.46n ± 22%        ~ (p=0.394 n=6)
LastIndexAnyASCII/1:2             13.35n ± 25%    12.78n ±  4%   -4.31% (p=0.006 n=6)
LastIndexAnyASCII/1:4             16.34n ±  8%    15.70n ±  8%        ~ (p=0.485 n=6)
LastIndexAnyASCII/1:8             20.16n ± 48%    19.98n ± 25%        ~ (p=0.699 n=6)
LastIndexAnyASCII/1:16            31.82n ±  7%    29.52n ± 18%        ~ (p=0.394 n=6)
LastIndexAnyASCII/1:32            13.77n ±  8%    13.22n ±  6%        ~ (p=0.310 n=6)
LastIndexAnyASCII/1:64            18.33n ±  5%    19.45n ± 10%        ~ (p=0.065 n=6)
LastIndexAnyASCII/16:1            62.32n ± 16%    62.00n ±  8%        ~ (p=0.905 n=6)
LastIndexAnyASCII/16:2            62.24n ±  5%    67.88n ± 10%   +9.06% (p=0.004 n=6)
LastIndexAnyASCII/16:4            68.60n ± 12%    72.99n ±  8%        ~ (p=0.485 n=6)
LastIndexAnyASCII/16:8            75.68n ± 33%    85.57n ± 16%        ~ (p=0.180 n=6)
LastIndexAnyASCII/16:16           105.8n ± 15%    108.9n ±  4%        ~ (p=0.394 n=6)
LastIndexAnyASCII/16:32           148.8n ± 10%    162.0n ± 15%   +8.91% (p=0.015 n=6)
LastIndexAnyASCII/16:64           254.0n ± 20%    232.3n ± 22%        ~ (p=0.093 n=6)
LastIndexAnyASCII/256:1           650.3n ±  4%    668.4n ± 21%        ~ (p=0.937 n=6)
LastIndexAnyASCII/256:2           599.2n ±  7%    665.6n ± 21%        ~ (p=0.065 n=6)
LastIndexAnyASCII/256:4           606.7n ±  5%    597.1n ±  8%        ~ (p=1.000 n=6)
LastIndexAnyASCII/256:8           620.0n ±  7%    638.2n ± 16%        ~ (p=0.240 n=6)
LastIndexAnyASCII/256:16          638.3n ± 22%    665.1n ±  4%        ~ (p=0.180 n=6)
LastIndexAnyASCII/256:32          710.7n ± 17%    754.1n ±  9%        ~ (p=0.699 n=6)
LastIndexAnyASCII/256:64          815.8n ± 13%    840.9n ± 47%        ~ (p=0.589 n=6)
LastIndexAnyUTF8/1:1              11.14n ±  8%    11.78n ± 14%        ~ (p=0.258 n=6)
LastIndexAnyUTF8/1:2              13.58n ± 13%    12.95n ± 23%        ~ (p=0.589 n=6)
LastIndexAnyUTF8/1:4              16.52n ± 11%    14.98n ±  6%   -9.29% (p=0.015 n=6)
LastIndexAnyUTF8/1:8              19.54n ±  6%    19.85n ± 19%        ~ (p=0.485 n=6)
LastIndexAnyUTF8/1:16             31.66n ± 14%    30.51n ± 10%        ~ (p=0.180 n=6)
LastIndexAnyUTF8/1:32             14.83n ± 29%    12.88n ± 13%  -13.12% (p=0.015 n=6)
LastIndexAnyUTF8/1:64             20.62n ± 13%    19.59n ± 12%        ~ (p=0.225 n=6)
LastIndexAnyUTF8/16:1             142.9n ± 27%    140.7n ± 23%        ~ (p=0.699 n=6)
LastIndexAnyUTF8/16:2             152.2n ± 36%    158.5n ± 28%        ~ (p=0.310 n=6)
LastIndexAnyUTF8/16:4             184.8n ± 13%    186.4n ±  2%        ~ (p=0.937 n=6)
LastIndexAnyUTF8/16:8             472.4n ± 25%    349.1n ± 15%  -26.11% (p=0.002 n=6)
LastIndexAnyUTF8/16:16            464.2n ± 27%    456.0n ± 14%        ~ (p=0.818 n=6)
LastIndexAnyUTF8/16:32            233.7n ± 14%    216.2n ±  5%        ~ (p=0.093 n=6)
LastIndexAnyUTF8/16:64            248.2n ± 12%    224.4n ± 45%        ~ (p=0.485 n=6)
LastIndexAnyUTF8/256:1            1.778µ ±  8%    1.867µ ± 13%        ~ (p=0.180 n=6)
LastIndexAnyUTF8/256:2            1.890µ ±  6%    2.050µ ±  7%   +8.52% (p=0.002 n=6)
LastIndexAnyUTF8/256:4            2.639µ ±  4%    2.621µ ±  5%        ~ (p=0.699 n=6)
LastIndexAnyUTF8/256:8            6.993µ ±  9%    5.324µ ±  7%  -23.87% (p=0.002 n=6)
LastIndexAnyUTF8/256:16           7.471µ ± 13%    6.945µ ± 10%        ~ (p=0.093 n=6)
LastIndexAnyUTF8/256:32           2.921µ ±  5%    2.814µ ± 31%        ~ (p=0.394 n=6)
LastIndexAnyUTF8/256:64           3.210µ ± 46%    2.960µ ±  4%   -7.77% (p=0.026 n=6)
IndexPeriodic/IndexPeriodic2      222.8µ ± 17%    105.6µ ± 11%  -52.60% (p=0.002 n=6)
IndexPeriodic/IndexPeriodic4      233.2µ ±  8%    101.2µ ± 22%  -56.58% (p=0.002 n=6)
IndexPeriodic/IndexPeriodic8     227.93µ ± 19%    98.77µ ± 39%  -56.67% (p=0.002 n=6)
IndexPeriodic/IndexPeriodic16     101.4µ ±  4%    110.7µ ±  9%        ~ (p=0.093 n=6)
IndexPeriodic/IndexPeriodic32     54.51µ ± 13%    55.67µ ±  5%        ~ (p=0.699 n=6)
IndexPeriodic/IndexPeriodic64     30.83µ ± 20%    29.69µ ±  8%        ~ (p=0.699 n=6)
geomean                           1.185µ          1.096µ         -7.56%

                              │ index_base.txt │             index_opt.txt              │
                              │      B/s       │      B/s        vs base                │
IndexByte/10                     500.3Mi ± 11%    555.0Mi ± 12%   +10.93% (p=0.026 n=6)
IndexByte/32                     3.022Gi ± 14%    3.301Gi ± 13%         ~ (p=0.093 n=6)
IndexByte/4K                     17.81Gi ±  8%    18.38Gi ± 18%         ~ (p=0.394 n=6)
IndexByte/4M                     3.649Gi ± 19%   19.997Gi ±  8%  +448.03% (p=0.002 n=6)
IndexByte/64M                    18.89Gi ± 22%    18.23Gi ±  9%         ~ (p=0.818 n=6)
IndexBytePortable/10             322.9Mi ± 17%    350.2Mi ± 17%         ~ (p=0.240 n=6)
IndexBytePortable/32             552.8Mi ± 25%    576.0Mi ± 17%         ~ (p=0.310 n=6)
IndexBytePortable/4K             682.7Mi ±  5%    769.1Mi ± 12%   +12.65% (p=0.026 n=6)
IndexBytePortable/4M             880.0Mi ± 24%    840.2Mi ± 17%         ~ (p=0.589 n=6)
IndexBytePortable/64M            915.8Mi ±  5%    959.1Mi ±  4%         ~ (p=0.132 n=6)
IndexRune/10                     271.2Mi ±  9%    272.8Mi ±  6%         ~ (p=1.000 n=6)
IndexRune/32                     602.3Mi ±  8%    604.6Mi ± 21%         ~ (p=0.818 n=6)
IndexRune/4K                     11.92Gi ± 16%    11.57Gi ± 10%         ~ (p=0.394 n=6)
IndexRune/4M                     13.47Gi ± 30%    14.09Gi ± 14%         ~ (p=0.699 n=6)
IndexRune/64M                    13.63Gi ± 12%    14.23Gi ±  4%         ~ (p=0.240 n=6)
IndexRuneASCII/10                511.3Mi ± 20%    557.9Mi ± 10%         ~ (p=0.132 n=6)
IndexRuneASCII/32                1.520Gi ±  5%    1.451Gi ± 12%         ~ (p=0.310 n=6)
IndexRuneASCII/4K                17.02Gi ± 25%    19.36Gi ±  5%   +13.77% (p=0.004 n=6)
IndexRuneASCII/4M                17.93Gi ± 17%    18.67Gi ± 23%         ~ (p=0.818 n=6)
IndexRuneASCII/64M               18.45Gi ±  5%    19.09Gi ±  6%         ~ (p=0.310 n=6)
IndexRuneUnicode/Latin/10        297.6Mi ± 16%    323.5Mi ± 21%         ~ (p=0.132 n=6)
IndexRuneUnicode/Latin/32        555.8Mi ± 39%    671.4Mi ±  6%   +20.80% (p=0.002 n=6)
IndexRuneUnicode/Latin/4K        4.862Gi ±  8%    4.619Gi ±  5%         ~ (p=0.310 n=6)
IndexRuneUnicode/Latin/4M        2.118Gi ± 12%    2.617Gi ±  7%   +23.57% (p=0.002 n=6)
IndexRuneUnicode/Latin/64M       2.200Gi ± 29%    2.182Gi ± 41%         ~ (p=0.485 n=6)
IndexRuneUnicode/Cyrillic/10     244.3Mi ± 17%    277.1Mi ±  8%         ~ (p=0.065 n=6)
IndexRuneUnicode/Cyrillic/32     700.6Mi ± 21%    694.0Mi ± 21%         ~ (p=0.699 n=6)
IndexRuneUnicode/Cyrillic/4K     1.761Gi ± 16%    1.916Gi ±  8%         ~ (p=0.132 n=6)
IndexRuneUnicode/Cyrillic/4M     1.782Gi ±  7%    1.796Gi ± 10%         ~ (p=0.699 n=6)
IndexRuneUnicode/Cyrillic/64M    1.506Gi ± 12%    1.381Gi ± 22%         ~ (p=0.589 n=6)
IndexRuneUnicode/Han/10          219.9Mi ±  5%    223.2Mi ± 28%         ~ (p=0.818 n=6)
IndexRuneUnicode/Han/32          663.4Mi ±  7%    611.4Mi ± 17%         ~ (p=0.065 n=6)
IndexRuneUnicode/Han/4K          2.999Gi ± 20%    3.481Gi ±  9%         ~ (p=0.065 n=6)
IndexRuneUnicode/Han/4M          2.305Gi ± 15%    2.363Gi ± 17%         ~ (p=0.818 n=6)
IndexRuneUnicode/Han/64M         1.921Gi ± 12%    1.644Gi ± 24%   -14.42% (p=0.015 n=6)
Index/10                         113.7Mi ±  8%    296.7Mi ±  3%  +160.99% (p=0.002 n=6)
Index/32                         137.1Mi ± 11%    163.7Mi ±  6%   +19.43% (p=0.002 n=6)
Index/4K                         281.0Mi ± 10%    370.6Mi ± 15%   +31.87% (p=0.002 n=6)
Index/4M                         285.7Mi ± 10%    366.6Mi ± 11%   +28.34% (p=0.002 n=6)
Index/64M                        269.7Mi ±  9%    364.9Mi ± 16%   +35.30% (p=0.002 n=6)
IndexEasy/10                     331.9Mi ± 17%    346.6Mi ±  7%         ~ (p=0.132 n=6)
IndexEasy/32                     623.3Mi ±  6%    635.1Mi ± 32%         ~ (p=1.000 n=6)
IndexEasy/4K                     11.76Gi ± 12%    11.54Gi ±  8%         ~ (p=1.000 n=6)
IndexEasy/4M                     4.924Gi ±  6%    3.828Gi ± 12%   -22.25% (p=0.002 n=6)
IndexEasy/64M                    3.907Gi ± 20%    3.763Gi ± 15%         ~ (p=0.937 n=6)
IndexHard1                       276.6Mi ± 25%    388.4Mi ±  7%   +40.46% (p=0.002 n=6)
IndexHard2                       281.3Mi ±  5%   1045.4Mi ±  5%  +271.68% (p=0.002 n=6)
IndexHard3                       267.4Mi ± 11%    629.8Mi ± 14%  +135.54% (p=0.002 n=6)
IndexHard4                       259.8Mi ± 12%    276.8Mi ±  3%         ~ (p=0.180 n=6)
geomean                          1.258Gi          1.458Gi         +15.91%

Checklist

  • Tests were added or are not required
  • Documentation was added or is not required

Comment thread src/bytes/bytes.go Outdated

@ctk-1998 ctk-1998 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants