Commit cdb3c82
committed
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 6a48b1a commit cdb3c82
2 files changed
+73
-15
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 | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | 22 | | |
24 | 23 | | |
25 | 24 | | |
| |||
0 commit comments