关于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 八进制转义字符(8进制)
Apr 08 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
javascript控制swfObject应用介绍
Nov 29 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
connect中间件session、cookie的使用方法分享
Jun 17 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
Dec 05 Javascript
关于定制FileField中的上传文件名称问题
Aug 22 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
JS原生实现轮播图的几种方法
Mar 23 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/11/14 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
浅谈json_encode用法
2015/03/05 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
JS作用域链详解
2017/06/26 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
Python实现统计单词出现的个数
2015/05/28 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
Django添加sitemap的方法示例
2018/08/06 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
通过python检测字符串的字母
2020/02/18 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
学生档案自我鉴定
2013/10/07 职场文书
十八大感想感言
2014/02/10 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
租房合同协议书
2014/04/09 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
手机被没收的检讨书
2014/10/04 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
运动会宣传稿50字
2015/07/23 职场文书
办公室日常管理制度
2015/08/04 职场文书
美容院员工规章制度
2015/08/05 职场文书
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers