数据优化学习 1

简介: 今天看了 codeproject 上的一片文章(http://www.codeproject.com/useritems/C__Code_profiling.asp),知道了自己进行控件测试最原始的方法。

今天看了 codeproject 上的一片文章(http://www.codeproject.com/useritems/C__Code_profiling.asp),知道了自己进行控件测试最原始的方法。

按照上面的方法对几个常用的类进行了分析,分析数据如下:

ArrayList
1 2 3 4 5 6 7 8 9 10 平均值
ForMethod:  20 20 10 20 21 30 20 20 20 20 20 ms
ForCountMethod:  20 20 20 20 10 30 20 20 10 20 19 ms
ForEachMethod:  50 40 40 40 40 40 40 40 40 40 41 ms
IEnumeratorMethod:  40 40 40 30 30 50 40 41 40 40 39 ms
Hashtalbe
1 2 3 4 5 6 7 8 9 10
ForMethod:  251 491 240 421 291 401 270 290 250 251 316 ms
ForCountMethod:  160 160 171 160 170 160 160 150 160 160 161 ms
IDEnumeratorMethod 50 50 50 50 50 60 50 50 50 50 51 ms
String[]
ForMethod:  451 440 440 440 441 491 441 441 440 440 447 ms
ForCountMethod:  471 441 450 451 450 521 450 470 451 441 460 ms
IEnumeratorMethod:  620 581 581 581 591 731 601 591 601 591 607 ms
ForEachMethod:  461 451 441 450 451 521 451 441 440 450 456 ms

[说明:测试数据为 1000000。时间单位: ms] 

总结:

1、对于 ArrayList  最好采用如下循环读取数据比较快:

int total = arrayList.Count;

for(int iCount = 0;iCount < total; iCount ++)

{

    // many of codes...

}

2、对于 Hashtable 循环读取数据,推荐方法:

IDictionaryEnumerator ide = ht.GetEnumerator();

while (ht.MoveNext())

{

// many of codes...

}

3、对于 String[] 之类的引用类型循环读取数据,推荐:

foreach(int str in arrayStr)

{

// many of codes...

}

目录
相关文章
|
缓存 JavaScript 前端开发
深入理解 ECMAScript modules:提升你的 JavaScript 技能(五)
深入理解 ECMAScript modules:提升你的 JavaScript 技能(五)
|
编解码 并行计算 JavaScript
Nodejs 第十六章(ffmpeg)
Nodejs 第十六章(ffmpeg)
276 0
|
12月前
element table配合from实现双击可编辑表格
如何使用Element UI的el-table和el-form组件实现双击可编辑的表格。
281 0
|
机器学习/深度学习 数据可视化 计算机视觉
【YOLOv8改进 - 注意力机制】Triplet Attention:轻量有效的三元注意力
**摘要:** 本文提出TripletAttention,一种轻量级的计算机视觉注意力机制,通过三分支结构增强跨维度交互。该方法利用旋转操作和残差变换在通道和空间维度上建立依赖,提升模型性能,同时保持低计算成本。作为附加模块,它能集成到现有骨干网络中,适用于图像分类及目标检测等任务。实验证实在ImageNet-1k、MSCOCO和PASCAL VOC上取得良好效果,并提供GradCAM可视化分析。代码已开源:[GitHub](https://github.com/LandskapeAI/triplet-attention)。
|
Java 关系型数据库 MySQL
flink tdsql cdc connector开发(已开源)
flink tdsql cdc connector开发(已开源)
374 0
|
缓存 前端开发 JavaScript
React适合开发什么类型的应用?
【5月更文挑战第27天】React适合开发什么类型的应用?
220 3
|
JSON 数据格式
将json格式的数据快速转换为excel,使用在线工具轻松搞定
将json格式的数据快速转换为excel,使用在线工具轻松搞定
800 0
|
存储 机器人 大数据
量化交易机器人系统开发(开发策略)及案例丨数字货币区块链交易所系统开发详细项目/方案设计/开发逻辑/源码版
  区块链的核心技术之一就是公开且透明的交易信息。一般情况下,在区块链内产生、流转和存储的信息是对所有节点用户开放的,其高度的透明化也使得区块内的所有人都能够查看数据的所有相关信息同时使用其应用。因此,区块链技术在信息共享与数据交换领域具有一定的优势。
|
Web App开发 缓存 JavaScript
前端(四)——vue.js、vue、vue2、vue3
前端(四)——vue.js、vue、vue2、vue3
3743 0
|
存储 弹性计算 固态存储
ECS云盘基础操作指引(Linux)
云盘是用户高频使用的云产品,同时也是新用户在真正使用过程中存在较多问题的云产品。本文介绍了Linux系统下云盘的基础概念,同时对常见的两个使用场景,给出了详细的操作指引及对应正确的输出结果,便于用户参考,实现使用体验优化及服务质量。1. 背景1.1 云盘扩容概述随着业务发展和应用数据增长,当云盘使用空间不足时,可以扩容云盘的存储容量,即云盘扩容。目前支持多种方式进行云盘扩容,包括:已有云盘扩容(扩
1067 0
ECS云盘基础操作指引(Linux)