Commit graph

3 commits

Author SHA1 Message Date
itexpert228
aa1c40a148
zaebalsaаа 2026-03-15 17:24:01 +03:00
itexpert228
305f316250
gjei9ohf 2026-03-15 16:56:22 +03:00
itexpert228
1742b26f0b
Implement singleton resolver to prevent repeated Sources.xz parsing
Problem: Sources.xz was being parsed multiple times during single install command
- Each dependency lookup triggered fresh parsing of 37,633 packages
- This caused 6.5s delays repeatedly during installation

Solution: Implement singleton resolver using sync.Once
- Add GetGlobalResolver() function with sync.Once pattern
- Ensure Sources.xz is parsed only once per process
- Thread-safe implementation for concurrent access

Changes:
- pkg/resolver/global_resolver.go: Singleton resolver implementation
- pkg/loader/package_loader.go: Use GetGlobalResolver instead of NewFastResolver
- cmd/optimized_build.go: Use GetGlobalResolver with lazy initialization
- Add cacheDir fields to support singleton pattern

Performance Results:
- First resolver init: 477µs (includes parsing)
- Subsequent calls: 42ns (11,360x faster)
- Target achieved: <1ms for repeated calls

Expected Behavior:
- Sources.xz parsed once per process
- All subsequent resolver calls reuse same instance
- O(1) dependency lookups after initial load
2026-03-15 16:52:55 +03:00