Open softworm opened 4 months ago
实际使用中随着服务越来越多,依赖越来越复杂,逐渐产生了Autowired注入耗时过长问题——72个内部相互依赖的服务,注入时间达到1500ms。(虽然这样依赖并不合理 :smile: )
经过排查优化,消除了递归解析与递归验证实例存在的方式,同样场景下注入时间减少至个位数。
原逻辑为上层路径的实例与当前类型匹配则复用(GetInstance);现调整为绝对相等才可复用instaceSet.Contains。
GetInstance
instaceSet.Contains
假设有 IBiz 继承 IBase,那么原来由IBiz得到的实例可以给IBase复用;现在解析为两个对象,与官方GetService<T>保持一致。
GetService<T>
希望大佬审阅,择机发版 :smile:
实际使用中随着服务越来越多,依赖越来越复杂,逐渐产生了Autowired注入耗时过长问题——72个内部相互依赖的服务,注入时间达到1500ms。(虽然这样依赖并不合理 :smile: )
经过排查优化,消除了递归解析与递归验证实例存在的方式,同样场景下注入时间减少至个位数。
原逻辑为上层路径的实例与当前类型匹配则复用(
GetInstance
);现调整为绝对相等才可复用instaceSet.Contains
。假设有 IBiz 继承 IBase,那么原来由IBiz得到的实例可以给IBase复用;现在解析为两个对象,与官方
GetService<T>
保持一致。希望大佬审阅,择机发版 :smile: