我的代码中有一些通用列表,其中有数十或数百个元素。
有时我需要用其他对象重新填充此列表,所以问题是:调用什么会更快Clear()
方法或创建一个new List<T>()
?
什么会更快,打电话Clear()
方法或创建一个`new List()?
这是无法回答的。这实际上取决于很多因素,包括藏品存在的时间。
这里最好的选择是:
分析该应用程序,看看这是否真的重要。它可能不会产生任何明显的差异,在这种情况下,我会使用对您如何看待这个对象最有意义的方法。
如果确实重要,请编写两组代码,并测量速度差异(如果有)。
从实际的角度来看,调用Clear()
实际上不会减少内存(由List<T>
本身),因为它不会缩小列表的容量,只会消除其中包含的值。创建一个新的List<T>
将导致新的列表被分配,这反过来又会随着增长而导致更多的分配。
然而,这并不意味着它会变慢 - 在许多情况下,重新分配将会faster因为您不太可能将大型数组提升到更高的垃圾回收代数,这反过来又可以使 GC 过程更快。
在不知道您的具体情况和测量在分析器中,无法知道哪个在您的场景中更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)