天天Linq,Linq... 请问Linq的Lambda表达式执行速度快吗?

anzhiqiang_touzi 2012-04-06 03:10:24
如题:
大家可以试试一个比较复杂的lambda 表达式,然后循环100000次然后与不用lambda 表达式来做,比比时间。
...全文
559 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙儿 2012-04-12
  • 打赏
  • 举报
回复
Linq会比较慢,相对于很多方法如用实体类,linq只是开发比较快,但是执行效率低,并且安全性也不好,可以建一个测试项目,访问一下页面,访问速度就出来了。
E次奥 2012-04-12
  • 打赏
  • 举报
回复
要看是什么了。

LinqtoSql还是LinqtoObject还是toXml。

数据库操作linq慢!
lj_aaaa 2012-04-10
  • 打赏
  • 举报
回复
linq有延迟执行啊什么的,看你要处理什么样的业务了。总的来说它没有ADO.net快吧,但是使用方便很多啊
anzhiqiang_touzi 2012-04-10
  • 打赏
  • 举报
回复
代码运行的速度并不是取决于代码行数。
试试:常用的反射调用方法和快速反射生成委托调用就知道呢。
zzc_king 2012-04-10
  • 打赏
  • 举报
回复
linq运行的速度也是相对而言,看执行代码的复杂程度,有时候别人10行代码搞定的而你却要100行,那肯定就慢了,要看检索的条件是否复杂
种草德鲁伊 2012-04-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

不知道这句话的语气哪里像喷了。。。

[/Quote]

看过几个帖子 那只黑喵貌似对linq特别排斥
  • 打赏
  • 举报
回复
看对喷啊。。。。。。。。
baysos 2012-04-06
  • 打赏
  • 举报
回复
不知道这句话的语气哪里像喷了。。。[Quote=引用 11 楼 的回复:]
不用怎么喷LZ啊 自己写的好的代码虽然行多 确实比LINQ快


引用 3 楼 的回复:
这个东西,要看你执行的是什么了吧,如果比较,你要和linq里面实现的过程一样才有可比性,比如sort,人家用快排,你用冒泡,有可比性吗

通常LINQ用快排,但自己写代码可以选择排序方式,如果集合已经基本有序,用冒泡效率远大于快排。
[/Quote]
种草德鲁伊 2012-04-06
  • 打赏
  • 举报
回复
标题说的是linq,到下面又变成了orm
五更琉璃 2012-04-06
  • 打赏
  • 举报
回复
不用怎么喷LZ啊 自己写的好的代码虽然行多 确实比LINQ快

[Quote=引用 3 楼 的回复:]
这个东西,要看你执行的是什么了吧,如果比较,你要和linq里面实现的过程一样才有可比性,比如sort,人家用快排,你用冒泡,有可比性吗
[/Quote]
通常LINQ用快排,但自己写代码可以选择排序方式,如果集合已经基本有序,用冒泡效率远大于快排。
anzhiqiang_touzi 2012-04-06
  • 打赏
  • 举报
回复
我想了解的是:执行lambda 的时间与不执行lambda 的时间想比较而已。
我觉得执行lambda 表达式的时间会比不执行lambda 的时间要慢。
不知道对不对。
q107770540 2012-04-06
  • 打赏
  • 举报
回复
看来您对LINQ的理解还只局限在LINQ2SQL上
anzhiqiang_touzi 2012-04-06
  • 打赏
  • 举报
回复
如何理解相同的功能呢?

比如两个方法:

A:
bool Delete(int UserID)
{
table.Delete(p=>p.UserID==UserID);
}

B:
bool Delete(int UserID)
{
//直接用ADO.NET来做。
}

//大家可以查看速度。
threenewbee 2012-04-06
  • 打赏
  • 举报
回复
另外我要告诉你的是,你的思维还停留在业余程序员的阶段。性能评估不是“把一个操作重复10000次”看结果的。

道理在于,程序中不同代码被执行到的概率不是均等的,甚至差异巨大。所以那些在理想情况下和极端情况下出现的乐观和悲观结果没有任何现实的意义。

我们假设一个程序由2个操作A B组成,A被运行10次,B运行1次。
程序第一个版本A执行1次需要2秒,B执行1次需要1秒。
程序第二个版本A执行1次需要1秒,B执行1次需要4秒。
如果不统计程序执行的频度,很多人会主观地感觉第二个版本更糟糕了。实际上第一个版本需要21秒,第二个程序只要14秒。
anzhiqiang_touzi 2012-04-06
  • 打赏
  • 举报
回复
我说的前提是:实现相同的功能
zh6335901 2012-04-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
如题:
大家可以试试一个比较复杂的lambda 表达式,然后循环100000次然后与不用lambda 表达式来做,比比时间。
[/Quote]
天天linq...如果没有很大的性能要求,为何不用呢
bdmh 2012-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你不能自己试试吗?白瞎了40分。
[/Quote]
建议大版建一个无聊贴分支吧,这一类的都转到那里去
bdmh 2012-04-06
  • 打赏
  • 举报
回复
这个东西,要看你执行的是什么了吧,如果比较,你要和linq里面实现的过程一样才有可比性,比如sort,人家用快排,你用冒泡,有可比性吗
zh6335901 2012-04-06
  • 打赏
  • 举报
回复
linq慢些,你可以自己用StopWatch看看
threenewbee 2012-04-06
  • 打赏
  • 举报
回复
你不能自己试试吗?白瞎了40分。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧