提高VB程序的运行效率

Author: 云飞 Date: 2001年 24期

?牐牭蹦惚嘈春靡桓龀绦颍械拇攵妓忱氐魇酝ü保蚁肽憧隙ɑ嵝老踩艨竦摹5恢阌忻挥锌悸枪绦虻脑诵行?率?与其它编程语言相比较,VB简单易学、功能强大,但其代码运行效率低下,因此,对程序代码进行优化是十分必要的。
  ?牐犗旅妫鸵勒瘴以诒喑坦讨凶芙岬囊恍┚椋蠹姨柑浮?
  #1?牐?1.避免使用Variant变量
  ?牐燰ariant变量是VB的缺省变量类型,程序中凡是未加类型说明的变量均被认为是Variant变量,Variant变量是一种变体型变量,它能够存放各种数据类型,可以放入数值、字符串、布尔值及日期等任何数据,其数据类型由最近放入的值决定。使用这种变量对于处理速度不成问题的应用程序来说,是非常方便的。然而,如果想提高应用程序的实际速度,就要避免使用变体型变量。因为,在运行时Variant将转化为适当的数据类型,而转化的过程是需要时间的。如果直接采用其它简单的数据类型,就可以避免不必要的类型转换操作而加快应用程序的速度;另外,每个Variant变量都要占用16位+1个类型位的存储空间,比其他数据类型都要多得多。避免使用Variant变量的办法是在每个模块前加上Option Explicit语句,这样所有的变量在使用前都必须进行声明。这样设置以后,如果程序中使用了未加声明的变量,在运行时VB就会弹出对话框来提醒你。
  #1?牐?2.选用最适当的数据类型
  ?牐牫绦蛑幸×勘苊馐褂肅urrency、Single和Double变量,并尽量使用Long整型变量,尤其在循环体中。因为Long整型变量是32位CPU的本机数据类型,所以其操作非常快。如果无法使用Long变量,就要尽量使用Integer或Byte数据类型。很多时候,即使在要求使用浮点数的情况下,也可以使用Long整型变量。例如,在窗体和图形控件的ScaleMode属性设置为像素时,就可以在控件和图形方法中使用Long整型变量表示大小和位置。
  ?牐牻谐ㄔ怂闶保峁绻恍枰∈糠郑涂梢允褂谜ㄔ怂惴╘)。由于浮点运算需要转移到协处理器上进行,而整数运算并不需要,所以整数运算总是比浮点运算快。如果确实需要做小数运算,则应选取相对较快的数据类型。在VB中各种数值数据类型的运算速度顺序如下(由快到慢):Long>Interge>Byte>Single>Double>Currency。
  #1?牐?3.将常用的属性值、函数返回值缓存在变量中
  ?牐犚话憷此担淞康拇?理速度比同类型的属性处理速度快许多,因此,如果经常用到某一属性值(如在循环体中),应该先将该属性值赋与某一变量,以后用该变量代替该属性,这样就能够提高代码的速度。比如,像这样的代码就比较慢:
  ?牐燜or I=0 to 10
  ?牐燣abel(I).left=text1.left
  ?牐燦ext I
  ?牐犗旅娓男吹拇刖鸵斓枚啵?
  ?牐燣abelleft=text1.left
  ?牐燜or I =0 to 10
  ?牐燣abel(I).left=labelleft
  ?牐燦ext I
  ?牐犕杂诤姆祷刂担部捎帽淞吭荽嫫浞祷刂担苊饩5饔迷诵械亩唇涌猓庋岽蠓鹊靥岣咚俣取H纾耗吵绦蛑卸啻斡玫絤id(text1.text,1,5),则可先用一变量Tempstring保存Mid(text1.text,1,5)的值,之后凡是用到该值的地方一律用Tempstring代替。
  #1?牐?4.图片共享
  ?牐犎绻谏杓剖苯嗤耐计釉氐郊父龃疤蹇煽丶校恳桓龃疤寤蚩丶即娲⒘烁猛计囊桓龈北尽H欢绻计嬗谝桓龃疤逯校闷渌疤寤蚩丶蚕砀猛计庋瓤梢约跎俪绦虻拇笮。ㄒ蛭话哂嗟耐计奖矗┯挚杉涌焖俣龋ú槐卮哟排讨卸啻渭釉兀?。如下面的代码:
  ?牐燩icture=LoadPicture?煟?"c:\windows\pic\chess.bmp")
  ?牐營mage1.picture=picture'使用同一图片
  ?牐燩icture1.picture=picture
  ?牐牨认铝屑釉亓送晃煌嫉娜龈北镜拇胍玫枚唷?
  ?牐燩icture=LoadPicture?煟?"c:\windows\pic\chess.bmp")
  ?牐營mage1.picture= LoadPicture?煟?"c:\windows\pic\chess.bmp")
  ?牐燩icture1.picture= LoadPicture?煟?"c:\windows\pic\chess.bmp")
  ?牐?