教你50招提升ASP.NET性能(二十):认识你的循环
2024-10-19 02:15:05
(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查询最慢。
测试代码:
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 = ; i < ; i++) { ; }
watch.Stop();
Console.WriteLine("for loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch();
// while loop
watch.Start();
int loop = ;
while (loop < ) { loop++; }
watch.Stop();
Console.WriteLine("while loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch();
// foreach loop
watch.Start();
int[] array = new int[];
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
最新文章
- MediatorPattern(中介者模式)
- shell字符串和数组
- [转]UOS 中的虚拟网络设备
- Unity中使用协程进行服务端数据验证手段
- 解决Firefox访问12306";连接不受信任";的问题
- selenim之ActionChains(一)
- 一文看懂 Github
- Django中的缓存基础知识
- tmux 安装
- elementUI tree组件获取当前选择所有选中(check)和半选中(indeterminate)的节点
- 【Common】NO.81.Note.1.Common.1.002-【文章摘要】
- 内核中的xenfs是什么?
- 如何配置windows定时任务
- sso架构图
- 关于MORMOT跨平台
- springmvc sitemesh json问题
- C++11之std::future和std::promise和std::std::packaged_task
- ATK-DataPortal 设计框架(三)
- 内核并发管理---spin lock
- 解决maven项目中有小红叉的问题
热门文章
- elementaryOS系统托盘解决方案
- ylbtech-权限管理-数据库设计-功能权限管理技术
- delphi7在win7系统如何安装spcomm控件
- 细雨学习笔记:Jmeter之post processors(后置处理器)
- 完全参照系统自带的DatePickerDialog、TimePickerDialog的源代码仿写的DateTimePickerDialog
- 动态执行linq 语句 NLinq
- Cloudera的安装
- <;Chapter 2>;2-2-2-1.介绍JSPs,JSTL,和EL(Introducing JSPs, JSTL, and EL)
- 树莓派使用8188eu无线网卡
- 现代程序设计 homework-07