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


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

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

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/7 16:06:00 [显示全部帖子]

连续两天看到Dictionary的妙用,令人瞠目,不得不顶!!

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/7 19:22:00 [显示全部帖子]

搞不明白,16楼的代码的确不存在两种代码效率上大的差异。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/8 11:12:00 [显示全部帖子]

以下是引用易服在2010-12-8 9:46:00的发言:

新代码

 
图片点击可在新窗口打开查看此主题相关图片如下:2010-12-8 9-34-37.png

旧代码


图片点击可在新窗口打开查看此主题相关图片如下:2010-12-8 9-40-55.png

差别不大,大约10秒

[此贴子已经被作者于2010-12-8 9:47:40编辑过]

 

是的,我做过测试,用了多种方法效率差别都不大。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/8 14:15:00 [显示全部帖子]

以下是引用mr725在2010-12-8 13:54:00的发言:
呵呵····   大家执行完代码,选择系统的还原按钮后,在执行另一个代码,也许会看到用时的结果不同····

 

结果没有什么差异,我反复测试过的,所以才说搞不懂。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/8 14:21:00 [显示全部帖子]

我差别也大的,就是易服的代码没有什么差异。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/8 14:52:00 [显示全部帖子]

没有文件,我按他的代码自己做过测试文件,其它什么事件都没有

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/8 15:32:00 [显示全部帖子]

收到,应该是这个原因了。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/8 20:36:00 [显示全部帖子]

你测试一下下面的代码,红色字体为效率不高的源头。

 

Dim s As Date = Date.Now()
Dim str As String
Dim Dic As New Dictionary(of DataRow, String)
For Each dr As DataRow In DataTables("申请表").DataRows
    str = "[乡名] = '" & dr("乡名") & "'And [村名] = '" & dr("村名") & "' And [组别] = '" & dr("组别") & "'"
    str = str  & " And [_Identify] < " & dr("_Identify")
    dic.Add(dr,Format(DataTables("申请表").Compute("Count(乡名)",str)+1,"00"))
Next
For Each dr As DataRow In dic.Keys
    dr("宗地序号") = dic(dr)
Next
Output.show((Date.Now -s).TotalSeconds)


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/12/9 9:17:00 [显示全部帖子]

图片点击可在新窗口打开查看

 回到顶部