gpt4 book ai didi

.net - 哪个更快 : clear collection or instantiate new

转载 作者:行者123 更新时间:2023-12-03 05:39:13 24 4
gpt4 key购买 nike

我的代码中有一些通用列表,其中有数十或数百个元素。有时我需要用其他对象重新填充此列表,所以问题是:调用 Clear() 会更快吗?方法或创建 new List<T>()

最佳答案

what will be faster, to call Clear() method or creating a `new List()?

这个问题无法回答。这实际上取决于很多因素,包括该集合存在的时间。

这里最好的选择是:

  1. 分析应用程序,看看这是否真的重要。它可能不会产生任何明显的差异,在这种情况下,我会使用对您如何看待这个对象最有意义的方法。

  2. 如果确实重要,请编写两组代码,并测量速度差异(如果有)。

从实际角度出发,调用Clear()实际上不会减少内存(由 List<T> 本身使用),因为它不会缩小列表的容量,只会消除其中包含的值。创建一个新的List<T>将导致分配一个新的列表,这反过来又会随着增长而导致更多的分配。

但是,这并不意味着它会变慢 - 在许多情况下,重新分配会更快,因为您不太可能将大型数组提升为更高的垃圾收集代,这在转动可以使 GC 过程更快。

如果不知道您的确切场景并在分析器中进行测量,就无法知道您的场景中哪个更好。

关于.net - 哪个更快 : clear collection or instantiate new,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901020/

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