提高代码的运行速度

提高代码的运行速度

ID:42617177

大小:85.50 KB

页数:8页

时间:2019-09-18

提高代码的运行速度_第1页
提高代码的运行速度_第2页
提高代码的运行速度_第3页
提高代码的运行速度_第4页
提高代码的运行速度_第5页
资源描述:

《提高代码的运行速度》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、提高代码的运行速度本文描述了如何通过一些技术手段来提高VB代码的执行效率。这些手段可以分为两个大的部分:编码技术和编译优化技术。本文从编码技术和编译技术来讨论。第一部分:编码技术。下面的这些方法(到现在为止共27种)可以帮助你提高代码的运行速度:1.使用整数(Integer)和长整数(Long)提高代码运行速度最简单的方法莫过丁•使用正确的数据类型了。也许你不相信,但是正确地选择数据类型可以大幅度提升代码的性能。在大多数情况下,程序员可以将Single,Double利Currency类型的变量替换为Integer或Long类型的变量,因为VB处理Integer和Long的能力远远高于处理•其

2、它几种数据类熨。下而是排序:Long最快Integer.Byte.Single.Double.Currency最慢在大多数借况下,程序员选择使用Single或Double的原因是因为它们能够保存小数。但是小数也可以保存在Integer类型的变量屮。例如程序屮约定有三位小数,那么只需要将保存在Integer变量屮的数值除以1000就可以得到结果。根据我的经验,使用Integer和Long替代Single,Double和Currency后,代码的运行速度可以提高将近1()倍。2.避免使用变体对于一个VB程序员来说,这是再明显不过的事情了。变体类型的变量需要16个字节的空间来保存数据,而一个整数(

3、Inieger)只需要2个字节。通常使用变体类型的日的是为了减少设计的工作量和代码量,也有的程序员图个省爭而使用它。但是如果一个软件经过了严格设计和按照规范编码的话,完全可以避免使用变体类型。在这里顺带提一旬,对于Object对象也存在同样的问题。谄看下面的代码:DimFSOSetFSO=NewScripting.FileSystemObject或DimFSOasobjectSetFSO=NewScripting.FileSystemObject上面的代码山于在申明的时候没冇指定数据类型,在赋值时将浪费内存和CPU时间。正确的代码应该彖下面这样:DimFSOasNewFileSystemOb

4、ject3.尽量避免使用属性在平时的代码中,最常见的比较低效的代码就是在可以使川变量的情况下,反复使用属性(Properly),尤英是在循环中。要知道存取变量的速度是存取屈性的速度的20倍左右。下面这段代码是很多程序员在程序中会使用到的:DimintConasIntegerForintCon=0toUbound(SomVar())Textl.Text=Textl.Text&vbcrlf&SomeVar(intCon)NextintCon下面这段代码的执行速度是上面代码的20倍。DimintConasIntegerDimsOutputasStringForintCon=0ioUbound(So

5、meVar())sOutput=sOutput&vbCrlf&SomeVar(intCon)NextTextl.Text=sOutput同样地,像这样的代码...DoUntilEOF(F)LineInput#F,nextLineTextl.Text=Textl.Text+nextLineLoop...比下而的代码慢得多:DoUntilEOF(F)LineInput#F,nextLinebufferVcir=bufferVcir+nextLineLoopTextl.Text=buffcrVar然而,下面的代码完成了相同的功能,而且还要快:Textl.Text=Input(F,LOF(F))如上

6、述,儿种方法都实现了同样的任务:同时,最好的算法也是最优的。1.尽暈使用数组,避免使用集合除非你必须使用集介(Collection),否则你应该尽量使用数组。据测试,数组的存取速度可以达到集介的100倍。这个数字听起来有点骇人听闻,但是如果你考虑到集合是一个对彖,你就会明口为什么差异会这么大。2.展开小的循环体在编码的时候,有可能遇到这种情况:一个循环体只会循环2到3次,而且循环体由儿行代码组成。在这种情况卞,你可以把循环展开。原因是循环会占用额外的CPU时间。但是如果循环比较复杂,你就没冇必要这样做了。6•避免使用很短的畅数和使用小的循环体相同,调用只有儿行代码的断数也是不经济的■•调用函

7、数所花费的吋间或许比执行函数中的代码需婆更长的时间。在这种借况下,你可以把函数中的代码拷贝到原來调用函数的地方。7.减少对子对象的引用在VBip,通过使用•來实现对象的引用。例如:Form1.Text1.Text在上而的例子屮,程序引用了两个对彖:Forml和TextU利用这种方法引用效率很低。但遗憾的是,没冇办法可以避免它。程序员唯一可以做就是使用With或者将用另一个对彖保存子对象(Textl)o,使用W

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。