RecycleContext是否有意义?
coocoa opened this issue · 0 comments
coocoa commented
在我阅读项目源代码的时候,我注意到 RecycleContext.reuseOrCreate()
在每次调用时都会执行create逻辑,因为
final int length = _usedIndexMap[key] = (_usedIndexMap[key] ?? 0) + 1;
所以每次调用 RecycleContext.reuseOrCreate()
时,length
的值都会 +1。
据我推测,RecycleContext
应该是充当了缓存池的作用,调用N次 RecycleContext.reuseOrCreate()
会产生N个 ContextSys
实例。但是当我分析完整段 RecycleContext
的代码逻辑之后,我观察到仅当 RecycleContext.markAllUnused()
在 RecycleContext.reuseOrCreate()
与 RecycleContext.cleanUnused()
之间被调用时,RecycleContext.reuseOrCreate()
才会变得有意义。
在我阅读其他部分的时候,只有例如
RecycleContext.markAllUnused();
// ...
for(var foo in container) {
// ...
RecycleContext.reuseOrCreate();
// ...
}
// ...
RecycleContext.cleanUnused()
也就是说,调用 RecycleContext.reuseOrCreate()
永远都会执行create逻辑,而不会reuse。那么 RecycleContext
存在的意义是什么?