gpt4 book ai didi

c# - 为什么要调用 Queue 的 TrimToSize 方法?

转载 作者:行者123 更新时间:2023-11-30 15:06:27 27 4
gpt4 key购买 nike

The capacity of a Queue is the number of elements the Queue can hold. As elements are added to a Queue, the capacity is automatically increased as required through reallocation. The capacity can be decreased by calling TrimToSize.

这是写在MSDN Queue Document中的

现在的问题是,如果我们在一个队列中添加大约 20,000 个项目,那么该队列将一个接一个地出队,直到队列为空。如果我们不调用 TrimToSize 函数,那么队列大小将保持为 20,000,但垃圾收集器会删除数据,因此从技术上讲,不存在内存泄漏,如果我们检查计数或序列化队列,则大小为空队列。 那么我们为什么要调用 TrimToSize 函数呢?

最佳答案

您将队列中对象的 GC 与队列本身的内存“插槽”混淆了。

队列将分配空间来存储所有 20K 引用....这些槽将只是空的,因此不会指向占用更多内存的对象。但是那些“插槽”仍会存在,等待分配给它们的引用。

关于c# - 为什么要调用 Queue 的 TrimToSize 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com