Commit 258efe0
authored
Optimize string matching (#6121)
* query: Add benchmark for string matching
* query: Optimize away allocations in string matching
Improves performance by ~4x or more.
```
$ benchstat old.txt new.txt
goos: darwin
goarch: arm64
pkg: github.com/parca-dev/parca/pkg/query
cpu: Apple M1 Max
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
StringMatching/equalFoldBytes-10 58.745n ± 1% 2.923n ± 7% -95.02% (p=0.000 n=10)
StringMatching/containsFoldBytes-10 69.07n ± 7% 18.68n ± 3% -72.95% (p=0.000 n=10)
StringMatching/hasPrefixFoldBytes-10 62.72n ± 2% 10.06n ± 13% -83.96% (p=0.000 n=10)
StringMatchingLongStrings/containsFoldBytes-10 203.30n ± 2% 55.16n ± 2% -72.87% (p=0.000 n=10)
geomean 84.81n 13.19n -84.44%
```1 parent 67e7b1d commit 258efe0
2 files changed
+151
-14
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
982 | 982 | | |
983 | 983 | | |
984 | 984 | | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
985 | 1046 | | |
986 | 1047 | | |
987 | 1048 | | |
988 | 1049 | | |
989 | 1050 | | |
990 | 1051 | | |
991 | | - | |
992 | | - | |
993 | 1052 | | |
994 | 1053 | | |
995 | | - | |
996 | | - | |
| 1054 | + | |
| 1055 | + | |
997 | 1056 | | |
998 | | - | |
999 | | - | |
| 1057 | + | |
| 1058 | + | |
1000 | 1059 | | |
1001 | | - | |
1002 | | - | |
| 1060 | + | |
| 1061 | + | |
1003 | 1062 | | |
1004 | | - | |
1005 | | - | |
| 1063 | + | |
| 1064 | + | |
1006 | 1065 | | |
1007 | | - | |
1008 | | - | |
| 1066 | + | |
| 1067 | + | |
1009 | 1068 | | |
1010 | | - | |
1011 | | - | |
| 1069 | + | |
| 1070 | + | |
1012 | 1071 | | |
1013 | 1072 | | |
1014 | 1073 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
0 commit comments