8.获取10000个数效率比较

  1. 8.获取10000个数效率比较
    1. 8.1 题目
    2. 8.2 深入解析
    3. 8.3 答题示例
    4. 8.4 关键词联想

8.获取10000个数效率比较


8.1 题目

上面两种获取10000个数的方式,哪种效率更高?为什么?


8.2 深入解析

方式2的效率更高。

原因

  • List 本质上是一个数组,当我们通过 Add 方法向 List 中添加元素时,如果容量不足,会触发数组扩容操作。
  • 扩容操作会带来内存和性能上的消耗:
    • 内存方面:每次扩容都会产生新的数组,导致旧数组成为垃圾,会增加内存的占用。此外,频繁的数组扩容也会增加垃圾收集(GC)的频率。
    • 性能方面:数组扩容时需要将原数组中的元素搬移到新数组中,这涉及内存的拷贝和数据的移动,会影响程序的性能。

综上所述,方式2的效率更高,因为它避免了数组扩容的操作,从而减少了内存和性能上的消耗。


8.3 答题示例

“第二种方式效率更高。因为第一种不断调用 List.Add 会动态扩容,触发多次数组重分配和元素复制,增加内存和GC开销;第二种预先分配好固定大小的数组,直接填充,不会扩容,性能更优。”


8.4 关键词联想

  • 预分配数组
  • 动态扩容开销
  • 元素复制
  • GC 触发
  • 性能优化
  • 内存占用


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏