关于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 相关文章推荐
jQuery右键菜单contextMenu使用实例
Sep 28 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
Javascript基础教程之switch语句
Jan 18 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
浅谈javascript中的加减时间
Jul 12 Javascript
jQuery实现的placeholder效果完整实例
Aug 02 Javascript
AngularJs ng-route路由详解及实例代码
Sep 14 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
Jan 03 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
JS根据json数组多个字段排序及json数组常用操作
Jun 06 Javascript
JavaScript实现随机五位数验证码
Sep 27 Javascript
JS深入学习之数组对象排序操作示例
May 01 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
js获取url传值的方法
2015/12/18 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
Python去除列表中重复元素的方法
2015/03/20 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
历史专业学生的自我评价
2014/02/28 职场文书
创建青年文明号材料
2014/05/09 职场文书
2014高考励志标语
2014/06/05 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
小学教师师德整改措施
2014/09/29 职场文书