关于List.ToArray()方法的效率测试


Posted in Javascript onSeptember 30, 2016

之前一直认为因为List内部实现是数组,ToArray的实现只是将数组返回出去而已。

今天测了一下发现并不是那样

var a = new List<int>();
for (int i = 0; i < 10000; i++)
{
a.Add(i);
}
DebugHelper.StartWatch();
foreach (var i in Enumerable.Range(0, 10000))
{
a.ToArray();
}
DebugHelper.StopWatch();

1万数量大小的List,调用1万次ToArray的时间消耗是417ms左右。

报着疑惑看了下源码,没想到它是把内部数组复制了一份再返回

public T[] ToArray()
{
T[] array = new T[this._size];
Array.Copy(this._items, 0, array, 0, this._size);
return array;
}

看来对于重复性操作,可以考虑直接缓存成全局变量,或者直接用List作为参数。

以上所述是小编给大家介绍的关于List.ToArray()方法的效率测试,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript修改css样式style
Apr 15 Javascript
js数组中如何随机取出一个值
Jun 13 Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
Jan 28 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
VUEJS实战之构建基础并渲染出列表(1)
Jun 13 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
Jul 22 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
JS关于刷新页面的相关总结
May 09 Javascript
Vue对象赋值视图不更新问题及解决方法
Jun 03 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
Jul 27 Javascript
微信小程序 window_x64环境搭建
Sep 30 #Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 #Javascript
JavaScript 对象详细整理总结
Sep 29 #Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 #Javascript
Angular 中 select指令用法详解
Sep 29 #Javascript
jQuery视差滚动效果网页实现方法经验总结
Sep 29 #Javascript
js仿小米官网图片轮播特效
Sep 29 #Javascript
You might like
让PHP支持页面回退的两种方法
2008/01/10 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
Python日志模块logging简介
2015/04/13 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python中类的初始化特殊方法
2017/12/01 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
Django数据统计功能count()的使用
2020/11/30 Python
计算机应用专业毕业生求职信
2013/10/24 职场文书
学校课外活动总结
2014/05/08 职场文书
银行求职自荐信
2014/06/30 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android