Foxtable(狐表)用户栏目专家坐堂 → 令人目瞪口呆的效率差别(有修正)


  共有43112人关注过本帖树形打印复制链接

主题:令人目瞪口呆的效率差别(有修正)

帅哥哟,离线,有人找我吗?
卟离卟弃
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2010/12/9 18:15:00 [显示全部帖子]

以下是引用狐狸爸爸在2010-12-7 23:13:00的发言:

 

那就比较一下这两段吧

 

第一段:

 

Dim v As Double
For Each
dr As DataRow In DataTables("表A").DataRows
    v
= DataTables("表A").Compute("Count(第二列 )", "第二列 = " & dr("第一列"))
   
dr("第四列") = v

Next

 

第二段:

 

Dim Dic As new Dictionary(of DataRow, Integer)
Dim
v As Double

For Each
dr As DataRow In DataTables("表A").DataRows
    v = DataTables("表A").Compute("Count(第二列 )", "第二列 = " & dr("第一列"))

    dic
.Add(dr, v
)
Next
For Each
dr As DataRow In dic.
Keys
   
dr("第四列") = dic(dr
)
Next

對比上面的代碼效率時,第一段用時 0.35秒 ; 第二段用時 0.37秒

 

對比第一頁 一樓的代碼效率時,第一段用時 235.08秒   ; 第二段用時 0.8秒

 

 

不懂,怎麼會這樣...

 

 


 回到顶部