You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perf(redis): zero-allocation key tree building via index scanning #1523
In RedisKeyTreeEngine.buildTree (lib/features/redis/redis_key_tree_engine.dart), for every key label.split(':') and parts.sublist(0, parts.length - 1) are called.
For 50,000 keys, this creates ~350,000 heap objects (List<String>, sublists, string chunks), causing GC pressure and UI frame stalls during Redis tree expansion.
Solution
Replace split and sublist with index-based scanning using key.indexOf(separator, start).
Traverse and build trie maps directly without allocating intermediate lists.
Avoid unnecessary substring allocations for unmodified paths.
Benefits
0 intermediate list allocations during tree construction.
~4-5x speedup for large Redis databases (10k+ keys).
Activity
Merge pull request #1609 from QueryaHub/issue/1523-redis-key-tree