Roman Gershman
6d1c22b64c
chore: GlobMatcher uses now reflex::Matcher regex engine ( #4528 )
...
Also consolidate benchmarking low level routines undeer dfly_core_test
```
BM_ParseFastFloat 707 ns 707 ns 4005656
BM_ParseDoubleAbsl 1460 ns 1460 ns 1927158
BM_MatchGlob/1000 121 ns 121 ns 23701780
BM_MatchGlob/10000 512 ns 512 ns 5481405
BM_MatchFindSubstr/1000 123 ns 123 ns 31114255
BM_MatchFindSubstr/10000 1126 ns 1126 ns 2522019
BM_MatchReflexFind/1000 118 ns 118 ns 22442417
BM_MatchReflexFind/10000 512 ns 512 ns 5414329
BM_MatchReflexFindStar/1000 106 ns 106 ns 26276727
BM_MatchReflexFindStar/10000 717 ns 717 ns 3719605
BM_MatchStd/1000 19782 ns 19779 ns 128020
BM_MatchStd/10000 199809 ns 199781 ns 13837
BM_MatchRedisGlob/1000 1601 ns 1601 ns 1754635
BM_MatchRedisGlob/10000 16494 ns 16493 ns 171585
BM_MatchRe2/1000 1039 ns 1039 ns 2709486
BM_MatchRe2/10000 10041 ns 10040 ns 281296
```
What's curious is that now matching `*foobar*` on string is faster than
searching for 'foobar` using string::find() (BM_MatchGlob vs BM_MatchFindSubstr)
Improvement vs Redis is 10-30 times faster (BM_MatchRedisGlob vs BM_MatchGlob).
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-02-05 10:29:51 +02:00
Daniel M
1958e09a9a
refactor: refactor fakeredis tests ( #3852 )
...
* refactor:fakeredis tests
2024-10-03 12:41:05 +03:00
Roman Gershman
20b8817148
fix: compatibility around list,string and sort commands ( #3568 )
...
1. Fix corner cases around non existing keys
2. Fix matching logic for * glob, as well as '' glob.
3. Improve SORT option parsing.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-08-25 16:30:55 +03:00
Daniel M
e3016a6f83
test: tests using fakeredis to check compatibility ( #3534 )
...
* fakeredis tests
2024-08-22 22:30:42 +03:00