Skip to content

perf: 每次 Inject 全量环检测,且环路径可能不准 #44

Description

@kooksee

问题

每次 Inject/TryInject 都调用 isCycle()buildDependencyGraph + DFS(api.go / cycle-check.go)。Provide 后无缓存失效策略,等于每次注入重建全图。

DFS 在 back-edge 上返回的整段 path 可能包含环外节点(例如 X→A→B→A 报成含 X 的路径)。

影响

  • 大图下每次注入 O(图) 成本
  • 环错误信息可能误导排障

建议

  • 仅在 providers 变更后重建/缓存依赖图
  • 裁剪路径到真正环(从重复节点起)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions