问题
每次 Inject/TryInject 都调用 isCycle() → buildDependencyGraph + DFS(api.go / cycle-check.go)。Provide 后无缓存失效策略,等于每次注入重建全图。
DFS 在 back-edge 上返回的整段 path 可能包含环外节点(例如 X→A→B→A 报成含 X 的路径)。
影响
- 大图下每次注入 O(图) 成本
- 环错误信息可能误导排障
建议
- 仅在 providers 变更后重建/缓存依赖图
- 裁剪路径到真正环(从重复节点起)
问题
每次
Inject/TryInject都调用isCycle()→buildDependencyGraph+ DFS(api.go/cycle-check.go)。Provide 后无缓存失效策略,等于每次注入重建全图。DFS 在 back-edge 上返回的整段
path可能包含环外节点(例如X→A→B→A报成含X的路径)。影响
建议