关于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 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
List the Stored Procedures in a SQL Server database
Jun 20 Javascript
javascript 表单规则集合对象
Jul 21 Javascript
js日期时间补零的小例子
Mar 05 Javascript
浅谈checkbox的一些操作(实战经验)
Nov 20 Javascript
JavaScript中的普通函数与构造函数比较
Apr 07 Javascript
简单分析javascript面向对象与原型
May 21 Javascript
js实现防止被iframe的方法
Jul 03 Javascript
JS克隆,属性,数组,对象,函数实例分析
Nov 26 Javascript
通过函数作用域和块级作用域看javascript的作用域链
Aug 05 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 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小程序自动提交到自助友情连接
2009/11/24 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
php导出CSV抽象类实例
2014/09/24 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
jQuery 局部div刷新和全局刷新方法总结
2016/10/05 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
vue router demo详解
2017/10/13 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
js仿360开机效果
2019/12/26 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
Vue性能优化的方法
2020/07/30 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
Sanic框架路由用法实例分析
2018/07/16 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Python类成员继承重写的实现
2020/09/16 Python
Python try except else使用详解
2021/01/12 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
法国在线药房:DoctiPharma
2020/10/21 全球购物
2014年社区党建工作总结
2014/11/11 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL