for 循环性能比较 提高for循环的效率


Posted in Javascript onMarch 19, 2009

for(int i=1,n=tempUser.length;i <n;i++)与
for(int i=1,;i <tempUser.length;i++)相比较,性能有较大的区别吗,有必要采取这种写法吗,
习惯for(int i=1,;i <tempUser.length;i++),而且并没有发现两者的性能有较大差别,
我当即就测试了一下,发现果然性能比较起来差别很小,甚至后者更高效一点。
虽然得出这样的结果,但和自己心里想的确完全相反的。所有当然就回复说差不多。
今天又发现一位前辈的blog中正好有对这个帖子的回应。他做了测试,内容大致是前面的帖子的问题应该是差不多的,但是他又更深入的进行测试,得出:在有情况for(int i=0;i<a.b.c.length;i++)的情况的时候,使用for(int i=0,n=a.b.c.length;i<n;i++)更加高效。
所有我也做了一下测试:

class Program { 
static void Main(string[] args) { 
string s; 
s = Console.ReadLine(); while(s != "0") { 
Person p = new Person(10000000); 
Console.WriteLine("for(int i=0;i<lenArray.length;i++)"); 
Console.WriteLine("Starting..."); 
long l1 = DateTime.Now.Ticks; 
for(int i = 0; i < p.Child.Alias.Length; i++) { 
//Console.Write(lenArray[i]); 
} 
long l2 = DateTime.Now.Ticks; 
Console.WriteLine("Ending.\nTime is : " + (l2 - l1).ToString()); 
Console.WriteLine("for(int i=0,n=lenArray.length;i<n;i++)"); 
Console.WriteLine("Starting..."); 
long l3 = DateTime.Now.Ticks; 
for(int i = 0, n = p.Child.Alias.Length; i < n; i++) { 
//Console.Write(lenArray[i]); 
} 
long l4 = DateTime.Now.Ticks; 
Console.WriteLine("Ending.\nTime is : " + (l4 - l3).ToString()); 
s = Console.ReadLine(); 
} 
Console.Read(); 
} 
}

for 循环性能比较 提高for循环的效率

其中数据量越大,类越大,差别越明显。

结论:影响应该在,变量在每次循环都要访问下一级变量的原因。如果只是简单的a.length可能编译器对这样的循环操作有优化,将a.length保存到了内存或一个比内存更块的地方,而多级就没有这么幸运了。
我们都知道for(int i=0;i<a.length;i++)语句,i=0是运行一次,而i<a.length和i++是每次循环都要做的工作。所有应该尽量将访问变量耗时间的操作放在第一个;号前。

Javascript 相关文章推荐
javascript事件模型代码
Jul 01 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
深入浅析JavaScript面向对象和原型函数
Feb 06 Javascript
阻止表单提交按钮多次提交的完美解决方法
May 16 Javascript
js自调用匿名函数的三种写法(推荐)
Aug 19 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
将angular-ui的分页组件封装成指令的方法详解
May 10 Javascript
关于jQuery里prev()的简单操作代码
Oct 27 jQuery
JavaScript之数组扁平化详解
Jun 03 Javascript
JavaScript使用localStorage存储数据
Sep 25 Javascript
vue3.0中使用postcss-pxtorem的具体方法
Nov 20 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
Oct 29 Javascript
js no-repeat写法 背景不重复
Mar 18 #Javascript
javascript 避免闭包引发的问题
Mar 17 #Javascript
用JavaScript编写COM组件的步骤
Mar 17 #Javascript
IE6与IE7中,innerHTML获取param的区别
Mar 15 #Javascript
InnerHtml和InnerText的区别分析
Mar 13 #Javascript
JavaScript 快捷键设置实现代码
Mar 13 #Javascript
JavaScript 事件属性绑定带参数的函数
Mar 13 #Javascript
You might like
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
浅谈js中的闭包
2015/03/16 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
windows下ipython的安装与使用详解
2016/10/20 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
django云端留言板实例详解
2019/07/22 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
服装机修工岗位职责
2013/12/26 职场文书
庆元旦活动总结
2014/07/09 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
行政主管岗位职责
2015/02/03 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
小学教学工作总结2015
2015/05/13 职场文书
毕业酒会致辞
2015/07/29 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL