关于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 相关文章推荐
IE中jscript/javascript的条件编译
Sep 07 Javascript
jquery photoFrame 图片边框美化显示插件
Jun 28 Javascript
Prototype源码浅析 Enumerable部分之each方法
Jan 16 Javascript
javascript 函数及作用域总结介绍
Nov 12 Javascript
JavaScript通过正则表达式实现表单验证电话号码
Mar 07 Javascript
Uploadify上传文件方法
Mar 16 Javascript
JS+html5制作简单音乐播放器
Sep 13 Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 Javascript
了解在JavaScript中将值转换为字符串的5种方法
Jun 06 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
详解vue页面首次加载缓慢原因及解决方案
Nov 06 Javascript
JavaScript实现酷炫的鼠标拖尾特效
Feb 18 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
xml在joomla表单中的应用详解分享
2012/07/19 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
requireJS模块化实现返回顶部功能的方法详解
2017/10/16 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
jupyter notebook清除输出方式
2020/04/10 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
keras slice layer 层实现方式
2020/06/11 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
PHP如何调用MYSQL存储过程
2014/05/30 面试题
经贸日语专业个人求职信
2013/12/13 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
政协会议宣传标语
2014/10/09 职场文书
春节慰问信范文
2015/02/15 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
2016中秋节广告语
2016/01/28 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
vue实现移动端div拖动效果
2022/03/03 Vue.js