Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共26 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

标题:补充效率提升的另一种情况(有修正,从390秒提升到2秒,从2秒提升到不到1秒)

1楼
狐狸爸爸 发表于:2010/12/9 10:51:00
精华帖子,目前你无权浏览!
2楼
foxor 发表于:2010/12/9 10:55:00

好用,顶!

3楼
czy 发表于:2010/12/9 10:59:00
真给力,顶!
4楼
czy 发表于:2010/12/9 11:04:00
这个问题很有代表性,也是佐证代码效率最好的范例,建议将示例加到模板中,帮助配以说明,让大家一起受益。
5楼
狐狸爸爸 发表于:2010/12/9 11:38:00
呵呵,帮助加进去了,示例文件就没有必要了吧。
6楼
mr725 发表于:2010/12/9 12:31:00

前一个代码执行时间:668.2183086

后一个代码执行时间:    3.9686992

 

比老大的慢了一倍了,电脑配置稍差些啊, 呵呵    。。。  但效果是相当明显的~~~

 

 

7楼
狐狸爸爸 发表于:2010/12/9 13:47:00

其实最优化的代码应该是,现在不到一秒了:

 

Dim s As Date = Date.Now()
Dim drs As List(of DataRow) = DataTables("表A").Select("", "项目, 日期")
drs(0)("累计支出") = drs(0)("支出")
For i As Integer = 1 To drs.Count - 1
    If drs(i)("项目") = drs(i - 1)("项目") Then
        drs(i)("累计支出") = drs(i-1)("累计支出") + drs(i)("支出")
    Else
        drs(i)("累计支出") = drs(i)("支出")
    End If
Next
Output.show("执行时间:" & (Date.Now -s).TotalSeconds)

8楼
migold 发表于:2010/12/9 13:55:00
太牛了!慢慢消化!建议加入帮助中放入示例
9楼
kylin 发表于:2010/12/9 14:15:00
以下是引用czy在2010-12-9 11:04:00的发言:
这个问题很有代表性,也是佐证代码效率最好的范例,建议将示例加到模板中,帮助配以说明,让大家一起受益。

支持,连同“令人目瞪口呆的效率差别(有修正)”一起编入示例模版中

10楼
mr725 发表于:2010/12/9 14:16:00
以下是引用狐狸爸爸在2010-12-9 13:47:00的发言:

其实最优化的代码应该是,现在不到一秒了:

 

Dim s As Date = Date.Now()
Dim drs As List(of DataRow) = DataTables("表A").Select("", "项目, 日期")
drs(0)("累计支出") = drs(0)("支出")
For i As Integer = 1 To drs.Count - 1
    If drs(i)("项目") = drs(i - 1)("项目") Then
        drs(i)("累计支出") = drs(i-1)("累计支出") + drs(i)("支出")
    Else
        drs(i)("累计支出") = drs(i)("支出")
    End If
Next
Output.show("执行时间:" & (Date.Now -s).TotalSeconds)

这个更准确: 看图: 累计支出2 是上面最新代码计算的结果~~  


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

真是更快、更好、更强啦~~

[此贴子已经被作者于2010-12-9 14:23:57编辑过]
共26 条记录, 每页显示 10 条, 页签: [1] [2][3]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 2 queries.