LINQ性能测试
例子参照网址:
https://blog.csdn.net/weixin_34185512/article/details/94654128
测试结果是:linq的执行效率基本上都要比用基础代码编写的foreach要慢一点。(跟上一篇一样的结论)
1.测试一代码如下:
using System.Collections.Generic; using System.Linq; using System.Web.Mvc; namespace CloudCodeTest.Controllers { public class LINQPerformanceExpController : Controller { // GET: LINQPerformanceExp public ActionResult Index() { List<string> xxx = new List<string>() { "aaaa", "bbbb", "aaabbb", "ccc", "aaaccc" }; System.Diagnostics.Stopwatch watchLinq = new System.Diagnostics.Stopwatch(); System.Diagnostics.Stopwatch watchLinqList = new System.Diagnostics.Stopwatch(); System.Diagnostics.Stopwatch watchForeach = new System.Diagnostics.Stopwatch(); watchLinq.Start(); for (int i = 0; i < 100000; i++) { var linq = xxx.Select(x => "000" + x); } watchLinq.Stop(); var watchLinqUseTime = (double)watchLinq.ElapsedMilliseconds; watchLinqList.Start(); for (int i = 0; i < 100000; i++) { var linq = xxx.Select(x => "000" + x).ToList(); } watchLinqList.Stop(); var watchLinqListUseTime = (double)watchLinqList.ElapsedMilliseconds; watchForeach.Start(); for (int i = 0; i < 100000; i++) { var yyy = new List<string>(); foreach (var item in xxx) yyy.Add("000" + item); } watchForeach.Stop(); var watchForeachUseTime = (double)watchForeach.ElapsedMilliseconds; ViewBag.watchLinqUseTime = watchLinqUseTime; ViewBag.watchLinqListUseTime = watchLinqListUseTime; ViewBag.watchForeachUseTime = watchForeachUseTime; return View(); } } }
测试结果如下:
2.测试二,加where代码如下:
//测试二:用上Select().Where().GroupBy().Select()等过滤条件 System.Diagnostics.Stopwatch watchLinqWhereList = new System.Diagnostics.Stopwatch(); System.Diagnostics.Stopwatch watchforeachWhere = new System.Diagnostics.Stopwatch(); watchLinqWhereList.Start(); for (int i = 0; i < 100000; i++) { var linq = xxx.Select(x => "000" + x).Where(x => x.IndexOf("aaa") != -1).ToList(); } watchLinqWhereList.Stop(); var watchLinqWhereUseTime = (double)watchLinqWhereList.ElapsedMilliseconds; watchforeachWhere.Start(); for (int i = 0; i < 100000; i++) { var yyy = new List<string>(); foreach (var item in xxx) { var tmp = "000" + item; if (tmp.IndexOf("aaa") != -1) yyy.Add(tmp); } } watchforeachWhere.Stop(); var watchForeachWhereUseTime = (double)watchforeachWhere.ElapsedMilliseconds; ViewBag.watchLinqWhereUseTime = watchLinqWhereUseTime; ViewBag.watchForeachWhereUseTime = watchForeachWhereUseTime;
测试二结果如下:
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/keeplearningandsharing/p/16092682.html
分类:
LINQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)