List<string> strList = new List<string>();
泛型创建时,按理指定容量性能优于默认容量,但经过测试发现,指定容量并没有什么性能优势?请高手指点。测试结果:
/*************************************************
* 测试用例:集合初始化--指定容量和不指定容量性能对比
* 结论:指定容量和不指定容量性能差别不大,按理:指定容量性能会好点
* 测试结果如下:(时间为毫秒)
* --------------------------------------
* 数据: | 10W | 100W | 1000W
* --------------------------------------
* 不指定容量 | 16 | 207 | 2867
* ---------------------------------------
* 指定容量 | 18 | 292 | 2863
*
*/
具体测试用例如下: Stopwatch watcher = new Stopwatch(); #region 测试用例--集合初始化时指定容量和不指定容量性能对比 #region 不指定容量
watcher.Reset();
watcher.Start();
int count = 1000000;
List<string> strList = new List<string>();
for (int i = 0; i < count; i++)
{
strList.Add(i.ToString());
}
Console.WriteLine("不指定集合容量:{0}", watcher.ElapsedMilliseconds);
#endregion #region 指定容量
watcher.Reset();
watcher.Start();
List<string> strList2 = new List<string>(count);
for (int i = 0; i < count; i++)
{
strList2.Add(i.ToString());
}
Console.WriteLine("指定集合容量:{0}", watcher.ElapsedMilliseconds);
#endregion
#endregion
泛型创建时,按理指定容量性能优于默认容量,但经过测试发现,指定容量并没有什么性能优势?请高手指点。测试结果:
/*************************************************
* 测试用例:集合初始化--指定容量和不指定容量性能对比
* 结论:指定容量和不指定容量性能差别不大,按理:指定容量性能会好点
* 测试结果如下:(时间为毫秒)
* --------------------------------------
* 数据: | 10W | 100W | 1000W
* --------------------------------------
* 不指定容量 | 16 | 207 | 2867
* ---------------------------------------
* 指定容量 | 18 | 292 | 2863
*
*/
具体测试用例如下: Stopwatch watcher = new Stopwatch(); #region 测试用例--集合初始化时指定容量和不指定容量性能对比 #region 不指定容量
watcher.Reset();
watcher.Start();
int count = 1000000;
List<string> strList = new List<string>();
for (int i = 0; i < count; i++)
{
strList.Add(i.ToString());
}
Console.WriteLine("不指定集合容量:{0}", watcher.ElapsedMilliseconds);
#endregion #region 指定容量
watcher.Reset();
watcher.Start();
List<string> strList2 = new List<string>(count);
for (int i = 0; i < count; i++)
{
strList2.Add(i.ToString());
}
Console.WriteLine("指定集合容量:{0}", watcher.ElapsedMilliseconds);
#endregion
#endregion
解决方案 »
- c# 请教数组中的元素“任意”赋值的问题?
- c# DrawImage 没有 光栅操作参数吗?像Bitblt 最后一个参数一样
- VC++与VC#之间数据类型怎么转换?
- 关于如何隐藏dos窗口的问题?
- MDI窗口的问题
- DropDownList怎样绑定?(急救!!!!!!!!!!!!!!!!!!!!!!!)
- 请问 C# 中,自己重写拖动标题栏移动窗口应该重载在个方法呀?
- :( 用多线程向Access中成批导入数据时,开始执行一段时间没问题,再后就保存失败了。
- net 2003安装问题
- 谁能提供Visual SourceSafe 6.0c的下载链接?
- C#怎么在前台页面加载完了之后,后台调用前台javascprit方法
- 请问,有没有人做过关于c#导出word的项目,不使用com组件的?
(1000W的数量上就很明显了)
除了时间上,还有另一方面的好处就是,减少内存碎片