教你50招提升ASP.NET性能(二十):认识你的循环
2013-08-01 14:13
363 查看
(31)Know your loops
招数31:
认识你的循环
for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.
for是遍历集合最快的方法,foreach略慢一些,LINQ查询最慢。
测试代码:
测试结果:
招数31:
认识你的循环
for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.
for是遍历集合最快的方法,foreach略慢一些,LINQ查询最慢。
测试代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Diagnostics; namespace ConsoleApplicationExample { class Program { static void Main(string[] args) { Console.WriteLine("code test:"); Stopwatch watch = new Stopwatch(); // for loop watch.Start(); for (int i = 0; i < 100000; i++) { ; } watch.Stop(); Console.WriteLine("for loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch(); // while loop watch.Start(); int loop = 0; while (loop < 100000) { loop++; } watch.Stop(); Console.WriteLine("while loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch(); // foreach loop watch.Start(); int[] array = new int[100000]; foreach (int i in array) { ; } watch.Stop(); Console.WriteLine("foreach loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch(); // foreach loop watch.Start(); Array.ForEach(array, (i) => { ; }); watch.Stop(); Console.WriteLine("lamda loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); Console.ReadLine(); } } }
测试结果:
code test: for loop: 0.2467 while loop: 0.2666 foreach loop: 0.4867 lamda loop: 0.8728
相关文章推荐
- 教你50招提升ASP.NET性能(二十):7条便利的ViewState技巧
- 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本
- 教你50招提升ASP.NET性能(三):使用Microsoft的PDBs调试和分析外部的程序集和库
- 教你50招提升ASP.NET性能(六):为了生动的用户体验,总是在客户端验证
- 教你50招提升ASP.NET性能(九):显式的使用using语句减少内存泄露
- 教你50招提升ASP.NET性能(十四):使用startMode属性来减少ASP.NET站点加载时间
- 教你50招提升ASP.NET性能(二十二):利用.NET 4.5异步结构
- 教你50招提升ASP.NET性能(一):缓存是最后的手段
- 教你50招提升ASP.NET性能(七):总是在服务器端执行验证
- 教你50招提升ASP.NET性能(十一):避免在调试模式下运行网站
- 教你50招提升ASP.NET性能(十六):把问题仍给硬件而不是开发人员
- 教你50招提升ASP.NET性能(十八):在处理网站性能问题前,首先验证问题是否出在客户端
- 教你50招提升ASP.NET性能(二):移除不用的视图引擎
- 教你50招提升ASP.NET性能(十三):精选技巧集合
- 教你50招提升ASP.NET性能(十七):不要认为问题只会从业务层产生
- 教你50招提升ASP.NET性能(十九):静态集合
- 教你50招提升ASP.NET性能(五):确保分页是在数据层完成的
- 教你50招提升ASP.NET性能(十五):解决性能问题时不要低估UI的价值
- 教你50招提升ASP.NET性能(十二):在生产环境,仔细考虑你需要记录哪些日志
- 教你50招提升ASP.NET性能(二十一):避免使用会话状态