danij91

Results 2 comments of danij91

谢谢! Thanks a lot @chexiongsheng !! 大多数时候,当我运行上述代码并通过Unity的内存分析器检查内存使用情况时,只有一个TestClass的实例似乎留在了内存中。然而,偶尔在内存分析器中观察到两个TestClass的实例。 Most of the time when I run the above code and check the memory usage via Unity's memory profiler, only one instance of...

@chexiongsheng 感谢您之前的回复。我明白要保证无引用对象的释放,需要进行一次完整的垃圾回收(GC)周期,由于一次完整的GC开销很大,所以它会被拆分为多个阶段,并根据当前应用的内存状况来执行。这意味着无引用的对象在内存中保留一段时间是正常的。 然而,我注意到了一个进一步的问题,即即使在调用垃圾回收器(GC)多次和经过了大量的时间后,实例的最小计数并不会减少。 以下是我用TestClass观察到的事件顺序: 我将TestClass分配给了a五次,这导致实例计数为5(根据Unity的内存分析器)。 调用GC后,实例计数减少到1。 TestClass被分配给a又三次,使实例计数达到4。 再次调用GC,实例计数减少到2。 这种模式持续,每次TestClass被分配和每次GC被调用时,实例计数都会波动。然而,即使在等待超过一个小时的时间(期间TestClass可能被分配很多次,并且频繁地调用GC)后,实例的最小计数(即GC调用后的实例计数)只会增加或保持不变。 我发现,一旦最小实例计数增加,它就不会减少 - 它只会增加或保持不变。请问这种行为是否符合垃圾收集器的正常运作预期,或者这可能表明存在内存管理问题? 谢谢您的持续协助。 Thank you for your previous response. I understand that a complete garbage collection (GC) cycle is needed...