.NET中如何优化集合性能?设置集合初始大小是关键吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3161个文字,预计阅读时间需要13分钟。
前言:计划开启一个新的系列,来讲讲在工作中经常用到的性能优化技巧、思路以及如何发现性能瓶颈。后续有时间的话,会整理一系列的博文出来。
今天要讲的一个性能优化的Tips是——一。
前言计划开一个新的系列,来讲一讲在工作中经常用到的性能优化手段、思路和如何发现性能瓶颈,后续有时间的话应该会整理一系列的博文出来。
今天要谈的一个性能优化的Tips是一个老生常谈的点,但是也是很多人没有注意的一个点。在使用集合类型是,你应该设置一个预估的初始大小,那么为什么需要这样做?我们一起来从源码的角度说一说。
我们先来聊一聊.NET BCL库中提供的集合类型,对于这个大家肯定都不陌生,比如List、HashSet、Dictionary、Queue、Stack等等,这些都是大家每天都用到,非常熟悉的类型了,那么大家在使用的时候有没有注意过它们有一个特殊构造函数呢?像下面代码块中的那样。
public Stack (int capacity)
public List (int capacity)
public Queue (int capacity)
public HashSet (int capacity)
public Dictionary (int capacity)
哎?为什么这些构造函数都有一个叫capacity的参数呢?我们来看看这个参数的注释。初始化类的新实例,该实例为空并且具有指定的初始容量或默认初始容量。
本文共计3161个文字,预计阅读时间需要13分钟。
前言:计划开启一个新的系列,来讲讲在工作中经常用到的性能优化技巧、思路以及如何发现性能瓶颈。后续有时间的话,会整理一系列的博文出来。
今天要讲的一个性能优化的Tips是——一。
前言计划开一个新的系列,来讲一讲在工作中经常用到的性能优化手段、思路和如何发现性能瓶颈,后续有时间的话应该会整理一系列的博文出来。
今天要谈的一个性能优化的Tips是一个老生常谈的点,但是也是很多人没有注意的一个点。在使用集合类型是,你应该设置一个预估的初始大小,那么为什么需要这样做?我们一起来从源码的角度说一说。
我们先来聊一聊.NET BCL库中提供的集合类型,对于这个大家肯定都不陌生,比如List、HashSet、Dictionary、Queue、Stack等等,这些都是大家每天都用到,非常熟悉的类型了,那么大家在使用的时候有没有注意过它们有一个特殊构造函数呢?像下面代码块中的那样。
public Stack (int capacity)
public List (int capacity)
public Queue (int capacity)
public HashSet (int capacity)
public Dictionary (int capacity)
哎?为什么这些构造函数都有一个叫capacity的参数呢?我们来看看这个参数的注释。初始化类的新实例,该实例为空并且具有指定的初始容量或默认初始容量。

