关于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 相关文章推荐
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 Javascript
Javascript学习笔记7 原型链的原理
Jan 11 Javascript
jQuery 自动增长的文本输入框实现代码
Apr 02 Javascript
Jquery插件easyUi表单验证提交(示例代码)
Dec 30 Javascript
javascript实现给定半径求出圆的面积
Jun 26 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
Jul 18 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
对layui中table组件工具栏的使用详解
Sep 19 Javascript
JS实现页面侧边栏效果探究
Jan 08 Javascript
如何用JavaScipt测网速
May 09 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连接和操作MySQL数据库基础教程
2014/09/29 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
PHP实现微信退款功能
2018/10/02 PHP
jQuery 技巧小结
2010/04/02 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
webstorm添加*.vue文件支持
2018/05/08 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
python 实现A*算法的示例代码
2018/08/13 Python
分析python请求数据
2018/08/19 Python
对python函数签名的方法详解
2019/01/22 Python
Python3.5运算符操作实例详解
2019/04/25 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
Java多态性的定义以及类型
2014/09/16 面试题
党校学习自我鉴定
2014/02/24 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
相亲大会策划方案
2014/06/05 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
检察院起诉意见书
2015/05/20 职场文书
redis缓存存储Session原理机制
2021/11/20 Redis
MySQL数据库完全卸载的方法
2022/03/03 MySQL
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫