为什么generic.list比数组慢?
发布于 2008-11-06 17:27:05
泛型列表比数组稍慢,但在大多数情况下您不会注意到。这主要与查找稍微复杂一些有关:据说List使用的是“幕后”数组,但不能保证将节点以数组的方式保存在相邻的内存中。
然而,早在2005年,我就看到了一些基准(现在找不到链接),而且差异很小。
此外,与数组相比,列表有许多重要的优点:主要是添加或删除项很简单。当您不知道需要多少项时,或者当这个数字会有所不同时,使用列表就容易多了。在这些情况下(老实说,这是大多数情况下),您可能不应该使用数组。
发布于 2008-11-06 22:01:28
在阅读性能方面,有两个因素:
List<T>将包含一个T[]字段,并且必须取消引用)T[]存在的一些编译器优化,例如在循环期间消除边界检查。
但是,添加到List<T>中要容易得多,特别是因为它保留了空闲空间--也就是说,它不必仅仅为了添加一个元素就调整/刷新整个数组。
https://stackoverflow.com/questions/269513
复制相似问题