for和foreach性能比较

【OpenCV3】cv::compare()使用详解 cv::compare()主要用于两个图像之间进行逐像素的比较,并输出比较的结果。具体用法如下: cv::compare() bool cv::compare( cv::InputArray src1, // 输入数组1 cv::InputArray src2, // 输入数组2 cv::OutputArray dst, // 输出数组 int cmpop // 比较操作子,见下表 ... 阅读详情

在很多情况下for和foreach具有同样的功能,选择for还是foreach很多人可能都是看自己的喜好,本测试试图通过 来真是测试数据来比较他们的执行效率。希望能给大家对他们的时候带来一些帮助。

测试环境: 
    硬件环境:   PIII800 + CPU456
    软件环境:   VisualStudio.Net  + C#

测试用例:
    利用结果集来存放记录,初始化对结果集添加记录
    分别对记录数为10000,100000,1000000条记录的时候进行采样分析

    关键测试对比代码如下,功能完全一样:
    //foreach开始时间
   datetime3 = System.DateTime.Now.TimeOfDay.ToString();
   foreach(DataRow row in relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows)
 buffer = row[RelationData.PK_TABLE_NAME].ToString();
   datetime4 = System.DateTime.Now.TimeOfDay.ToString();

   //for开始时间
   datetime5 = System.DateTime.Now.TimeOfDay.ToString();
   for(int j=0;j<1000000;j++)
         buffer = relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows[j][RelationData.PK_TABLE_NAME].ToString();
   datetime6 = System.DateTime.Now.TimeOfDay.ToString();
 
测试结果:
   10000条记录时:
         foreach读取时间:16:29:34.2577584
         foreach结束时间:16:29:34.2677728
         for读取开始时间:16:29:34.2677728
         for读取结束时间:16:29:34.2878016
   100000条记录时:
         foreach读取时间:16:31:10.1055808
         foreach结束时间:16:31:10.1957104
         for读取开始时间:16:31:10.1957104
         for读取结束时间:16:31:10.4460704
   1000000条记录时:
         foreach读取时间:16:33:12.6217504
         foreach结束时间:16:33:13.6332048
         for读取开始时间:16:33:13.6332048
         for读取结束时间:16:33:18.7906208

结果分析:
   1)对于10000条记录可以看出
         foreach用了 0.0100144 
         for循环用了0.0300432
         foreach所花的时间正好是for循环的 1/3
   2)对于100000条记录可以看出
         foreach用了0.0901296  
         for循环用了0.2503600
         foreach所花的时间是for循环的 36%
   3)对于1000000条记录结果可以看出
         foreach用了1.0114544  
         for循环用了4.1574160
         foreach所花的时间是for循环的 25%

    通过对这些测试结果的分析,可以看出相对于原来的for语句foreach具有
更好的执行效率,foreach的平均花费时间只有for30%。通过测试结果在for和foreach都可以使用的情况下,我 们推荐使用效率更高的foreach.在测试同时
我们附加的发现,用for写入数据时间大约是读取数据时间的10倍左右

 
openlayers6/7 行政区划裁剪 只显示某个区域 示例为天地图 openlayers6/7 行政区划裁剪 只显示某个区域 示例为天地图。 阅读详情

相关推荐

Hi3516CV610 YOLOv8模型转换与部署实战:从源码到板端推理全流程解析

本文详细解析了将YOLOv8模型部署到Hi3516CV610开发板的全流程。内容涵盖从Ubuntu环境搭建、模型获取与验证,到关键的PyTorch模型转换为ONNX格式,并利用海思工具链量化生成板端可执行的.wk文件。最后,指导开发者编写板端C程序,完成视频流处理、NNIE推理及结果后处理,并提供了部署调试与性能优化的实用技巧。

weixin_29215815的博客 268

(学习笔记)for循环和forEach性能差异对比

1.写法比较 第一种:普通for循环格式: for(表达式1;循环条件;表达式2){ ...循环体 } 第二种:增强for循环格式: for(类 类的别名 : 类的集合){ ...循环体 } 第三种:iterator 格式: Iterator<Integer> iterator = arrayList.iterator(); while (iterator.hasNext()) { iterator.next(); } 基于增强for实现的扩展写法 forEach:...

qq_35385932的博客 1万+

基于Scrapy+Playwright的学术会议信息智能爬取系统实战

本文详细介绍如何使用Python构建一个高效的学术会议信息爬取系统,结合Scrapy框架和Playwright无头浏览器技术,实现对全球学术会议数据的自动化采集、清洗和存储。文章包含完整的技术方案设计、代码实现细节以及性能优化策略,可帮助读者快速掌握现代网络爬虫开发的核心技术。关键词:Python爬虫、Scrapy、Playwright、学术会议、数据采集、反爬对抗python复制下载。

2201_76125261的博客 711

forEach与for循环的区别(性能与循环跳出)

面试题

WRSR52的博客 2234

SAP-ABAP:SAP的BAPI_GOODSMVT_CREATE 深度解析

BAPI_GOODSMVT_CREATE 深度解析** **功能定位**:SAP 标准接口,支持 **11 种库存移动场景**(收货/发货/转储/生产投料等),是 MM 模块集成核心

baidu_35680696的博客 1826

20、微电网系统的系统框架、建模与控制架构解析

本文详细解析了微电网系统的系统框架、建模方法以及控制架构。文章首先介绍了在系统的系统(SoS)框架下,微电网如何通过微控制器(MC)和微电网中央控制器(MGCC)协调运行,并支持并网与孤岛模式下的高效能量管理。随后,针对微电网的关键组件,包括微涡轮机、光伏太阳能电池和风力涡轮机,提供了详细的数学建模分析。最后,探讨了微电网的控制架构设计,涵盖分层控制和共识控制策略,以实现系统的高效、稳定运行,满足日益增长的能源需求与市场要求。

elastic6hunter的博客 206

为什么for循环比forEach性能高?

需要注意的是,JavaScript引擎的优化能力不断提升,现代的JavaScript引擎对数组的 forEach 方法可能进行了优化,使其在某些情况下与 for 循环性能相当。循环控制:for 循环对循环的控制更加灵活。可以通过定义循环变量、定义循环条件和更新循环变量的方式来精确控制循环的次数和逻辑,这使得 for 循环在对大型数据集进行迭代时更高效。迭代过程中的中断和跳出:for 循环可以使用 break 语句和 continue 语句在迭代过程中进行中断或跳出,提供了更大的灵活性。

Aan___的博客 898

【RT-DETR有效改进】轻量级网络ShuffleNetV2(附代码+修改教程)

从今天开始正式开始更新RT-DETR剑指论文专栏,本专栏的内容会迅速铺开,在短期呢大量更新,价格也会乘阶梯性上涨,所以想要和我一起学习RT-DETR改进,可以在前期直接关注,本文专栏旨在打造全网最好的RT-DETR专栏为想要发论文的家进行服务。RT-DETR剑指论文专栏,持续复现各种顶会内容——论文收割机RT-DETR​​。

Snu77的博客 1994

刨析 JS 中的forEach、for in、for of三类循环原理和性能

一、for 循环和 while 循环的性能对比 优点:程序简洁,结构清晰,循环初始化,循环变量化,循环体和循环条件位置突出 循环是可以中断循环(利用break语句或return语句)。 缺点:结构比while循环复杂,容易出编码错误 let arr = new Array(999999).fill(1) console.time('forTime') for(let i = 0; i< arr.length; i++){} console.timeEnd('forTi...

muzidigbig的博客 1万+

Unreal 从入门到进阶 之 如何实现Pixel Streaming

Unreal Engine 5 (UE5) 的 Pixel Streaming 是一项基于云端的实时流媒体技术,允许将 UE5 应用的高质量图形渲染结果通过 WebRTC 协议传输到用户的浏览器或轻量级设备,同时将用户输入(如鼠标、键盘、触控)回传到服务器处理。UE的插件相对比较好用,但是就是环境下载总是失败。希望这篇文章对你有所帮助。

TxNet 1369

深入浅出:大型语言模型(LLM)的全面解读

在当今的数字化时代,人工智能技术已经成为各行各业的核心驱动力之一。而在人工智能的领域中,大型语言模型(LLM)作为一种引人瞩目的技术,正在以其强大的语言理解和生成能力引领着一场革命。本文旨在深入浅出地解读大型语言模型,探讨其背后的原理、技术突破、应用场景以及未来发展趋势。

fudaihb的博客 10万+

有了for循环 为什么还要forEach?

js中那么多循环,for for…in for…of forEach,有些循环感觉上是大同小异今天我们讨论下for循环和forEach的差异。 我们从几个维度展开讨论: for循环和forEach的本质区别。 for循环和forEach的语法区别。 for循环和forEach的性能区别。 本质区别 for循环是js提出时就有的循环方法。forEach是ES5提出的,挂载在可迭代对象原型上的方法,例如Array Set Map。 forEach是一个迭代器,负责遍历可迭代对象。那么遍历,迭代,可迭代对象分别是

CRMEB小程序商城的博客 1万+

【Hermes Agent】2026 Hermes Agent 最新入门级实战指南:从原理、部署、模型配置到落地 Demo

当下 Vibe Coding、AI 自动化时代,单纯对话大模型已经没有竞争力,

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 244

Java中for、foreach、stream区别和性能比较

如果数据量在10万的时候,stream效率最高,其次是foreach,最后是for。另外需要注意的是如果数据达到100万的话,parallelStream异步并行处理效率最高,高于foreach和for。stream().forEach 和 forEach 方法都可以使用在集合类上,但是有一些区别。在效率方面,stream().forEach、forEach 和 parallelStream 之间存在一些差异。stream().forEach() 和 forEach() 在使用方式和行为上有一些区别。

刘皇叔说Java的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java for循环和foreach循环的性能比较

在公司codereview过程中,发现一个问题,就是有些人循环用的是普通for循环,有些人用的是foreach循环,它们之间有什么区别?应该在什么时候使用这两种循环了? 两种循环的语法格式: 普通for循环语法: for (int i = 0; i < integers.length; i++) { System.out.println(intergers[i]); } foreac

小草的博客 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JavaScript 中 for 循环、for...of、forEach、map、filter 和 reduce 的性能比较

for虽然for循环性能最佳,但并不总是最合适的选择。理解每种方法的底层实现和适用场景,才能在实际开发中编写出既高效又优雅的代码。开发优先考虑可读性,关键路径优化性能。

2401_85392853的博客 648

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

javascript的map和forEach,for性能比较

for速度比较快,forEach速度和for相当,map慢console.time('map'); for (var i = 0; i < 100000; i++) { var s = new Array(100).fill('1') var arr = s.map((item, idx)=>{ return item; }); } console.time

u012841667的专栏 6797

java foreach和for性能_Foreach循环与For性能比较

java Foreach好还是for()语句好?Foreach循环及For性能及使用上的比较。Foreach语句从什么时候开始有的?JDK1.5起,增加了Foreach语句新功能,Foreach是for循环遍历数据的一种简写形式,关键字依然是for,但参数与格式不同。Foreach其详细用法为:for(Type e:collection){//对语句中变量e的使用}参数说明:e:其类型Type是集...

weixin_32691823的博客 577

console.time和console.timeEnd比较for和forEach的性能

成对使用console.time()和console.timeEnd()比较for 和 forEach谁消耗的时间短: let obj={ name:'Lucy', age:18, gender:'Female' }; let obj2={ name:'Luke', age:18, gender:'Male' } let arr=[]; for(let i=0;i<100;i++){//修改arr的长度 arr.push(obj); } arr.push(obj2).

D_lunar的博客 353

C# 中 for和foreach 性能比较,提高编程性能

在很多情况下for和foreach具有同样的功能,选择for还是foreach很多人可能都是看自己的喜好,本测试试图通过 来真是测试数据来比较他们的执行效率。希望能给大家对他们的时候带来一些帮助。 测试环境: 硬件环境: PIII800 + CPU456 软件环境: VisualStudio.Net + C# 测试用例: 利用结果集来存放记录,初始化对结果集添加记录 分别对记录数

c135205的专栏 1861

java for 和foreach_Java for循环和foreach循环的性能比较

就是有些人循环用的是普通for循环,有些人用的是foreach循环,它们之间有什么区别?应该在什么时候使用这两种循环了?两种循环的语法格式:普通for循环语法:for(inti=0;iSystem.out.println(intergers[i]);}foreach 循环语法:for(Integerin:integers){System.out.println(in);}今天我们...

weixin_39617318的博客 98

C# 中 for和foreach 性能比较

测试环境: 硬件环境: PIII800 + CPU456 软件环境: VisualStudio.Net + C# 测试用例: 利用结果集来存放记录,初始化对结果集添加记录 分别对记录数为10000,100000,1000000条记录的时候进行采样分析 关键测试对比代码如下,功能完全一样: //foreach开始时间 datetime3 = System.DateTime.Now.

刘津宇教编程 2685

for循环和IntStream.forEach()性能比较

1.测试代码 import java.util.stream.IntStream; /** * <p> @Title Test * <p> @Description 测试类 * * @author ACGkaka * @date 2020/4/18 7:13 */ public class Test { /** * 测试for()循环 ...

ACGkaka的博客 2650
上一篇: 什么是UBB代码
下一篇: ASP.net面试资料
stableboy
博客等级 码龄22年 74粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值