Background
PR #343 makes the NormalizedPath interning cache configurable (via the new Cache<K, V> interface, LruCache, and NoCache implementations). While this addresses the performance cliff identified in #342 and #118, a follow-up investigation is needed.
Problem
- The current approach (even with
NoCache) may not be as cheap as possible when interning is disabled. There may be room to make the no-interning path even lighter.
- Dart-side caches (including
LruCache) cannot be shared across isolates. This significantly limits their effectiveness in multi-isolate deployments, where each isolate maintains its own separate cache with no shared benefit.
Tasks
References
Requested by
@nielsenko
Background
PR #343 makes the
NormalizedPathinterning cache configurable (via the newCache<K, V>interface,LruCache, andNoCacheimplementations). While this addresses the performance cliff identified in #342 and #118, a follow-up investigation is needed.Problem
NoCache) may not be as cheap as possible when interning is disabled. There may be room to make the no-interning path even lighter.LruCache) cannot be shared across isolates. This significantly limits their effectiveness in multi-isolate deployments, where each isolate maintains its own separate cache with no shared benefit.Tasks
NoCache) code path can be made even cheaper (e.g., avoiding unnecessary allocations or lookups entirely).SendPort/ReceivePort, native code, or alternative architectural approaches).References
Requested by
@nielsenko