大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> Script -> 编写高质量的VB代码

编写高质量的VB代码

时间: 2021-07-31 作者:daque

简介:正文刻画了怎样经过少许本领本领来普及vb代码的实行功效。那些本领不妨分为两个大的局部:源代码本领和编写翻译优化本领。在源代码本领中引见了怎样经过运用高效的数据典型、缩小外部援用等编制程序本领来普及代码实行速率,缩小代码耗费的体例资源。在编写翻译优化本领中引见了怎样精确地运用vb供给的编写翻译选项对在编写翻译时结果天生的可实行文献举行优化。媒介什么是一个高效的软硬件?一个高效的软硬件不只该当比实行同样功效的软硬件运转得更快,还该当耗费更少的体例资源。这篇作品聚集了作家在运用vb举行软硬件开拓时积聚下来的少许体味,经过少许大略的例子来向你展现怎样写出高效的vb代码。个中包括了少许大概对vb步调员特殊有扶助的本领。在发端之前,先让我陈清几个观念。让代码一次成型:在我交战到的步调员中,有很多人爱好先按照功效需要把代码写出来,而后在此普通上优化代码。结果创造为了到达优化的手段,她们不得不把代码再从新写一遍。以是我倡导你在编写代码之前就须要商量优化题目。控制好优化的截止和须要耗费的处事之间的联系:常常当实行了一段代码,你须要查看和窜改它。在查看代码的进程中,大概你会创造某些轮回中的代码功效还不妨获得进一步的矫正。在这种情景下,很多探求完备的步调员大概会立马窜改代码。我的倡导是,即使窜改这段代码会使步调的运转功夫减少一秒,你不妨窜改它。即使只能带来10毫秒的本能矫正,则不做任何变换。这是由于重写一段代码必然会引入新的缺点,而调节和测试新的代码必然会花掉你确定的功夫。步调员该当在软硬件本能和开拓软硬件须要的处事量之间找一个平稳点,并且10毫秒对于用户来说也是一个不许领会到的分别。在须要运用面向东西本领的功夫尽管运用它;vb供给的体制不实足扶助面向东西的安排和源代码,然而vb供给了大略的类。大普遍人觉得运用东西将引导代码的功效贬低。对于这一点我部分有些各别的看法;参观代码的功效不许简单从运转速率的观点动身,软硬件占用的资源也是须要商量的成分之一。运用类不妨扶助你在完全上提高软硬件的本能,这一点我会在反面的例子中精细证明。当你编写vb代码的功夫,蓄意你能把上头几点动作引导你源代码的规则。我把作品分为两个局部:怎样普及代码的运转速率和编写翻译优化。怎样普及代码的运转速率底下的那些本领不妨扶助你普及代码的运转速率:1. 运用平头(integer)和长平头(long)普及代码运转速率最大略的本领莫过于运用精确的数据典型了。大概你不断定,然而精确地采用数据典型不妨大幅度提高代码的本能。在大普遍情景下,步调员不妨将single,double和currency典型的变量替代为integer或long典型的变量,由于vb处置integer和long的本领远远高于处置其它几种数据典型。在大普遍情景下,步调员采用运用single或double的因为是由于它们不妨生存少量。然而少量也不妨生存在integer典型的变量中。比方步调中商定有三位少量,那么只须要将生存在integer变量中的数值除以1000就不妨获得截止。按照我的体味,运用integer和long代替single,double和currency后,代码的运转速率不妨普及快要10倍。2. 制止运用变体对于一个vb步调员来说,这是再鲜明然而的工作了。变体典型的变量须要16个字节的空间来生存数据,而一个平头(integer)只须要2个字节。常常运用变体典型的手段是为了缩小安排的处事量和代码量,也有的步调员图个方便而运用它。然而即使一个软硬件过程了庄重安排和依照典型源代码的话,实足不妨制止运用变体典型。在这边顺带提一句,对于object东西也生存同样的题目。请看底下的代码:dim fso set fso = new scripting.filesystemobject 或dim fso as objectset fso = new scripting.filesystemobject 上头的代码因为在声明的功夫没有指定命据典型,在赋值时将滥用外存和cpu功夫。精确的代码该当象底下如许:dim fso as new filesystemobject 3. 尽管制止运用属性在平常的代码中,最罕见的比拟低效的代码即是在不妨运用变量的情景下,重复运用属性(property),更加是在轮回中。要领会存取变量的速率是存取属性的速率的20倍安排。底下这段代码是很多步调员在步调中会运用到的:dim intcon as integerfor intcon = 0 to ubound(somvar())text1.text = text1.text & vbcrlf & somevar(intcon)next intcon 底下这段代码的实行速率是上头代码的20倍。 dim intcon as integerdim soutput as stringfor intcon = 0 to ubound(somevar())soutput = soutput & vbcrlf &somevar(intcon)nexttext1.text = soutput 4. 尽管运用数组,制止运用汇合只有你必需运用汇合(collection),要不你该当尽管运用数组。据尝试,数组的存取速率不妨到达汇合的100倍。这个数字听起来有点耸人听闻,然而即使你商量到汇合是一个东西,你就会领会干什么分别会这么大。5. 打开小的轮回体在源代码的功夫,有大概遇到这种情景:一个轮回体只会轮回2到3次,并且轮回体由几行代码构成。在这种情景下,你不妨把轮回打开。因为是轮回会占用特殊的cpu功夫。然而即使轮回比拟搀杂,你就没有需要如许做了。6. 制止运用很短的因变量和运用小的轮回体沟通,挪用惟有几行代码的因变量也是不财经的--挪用因变量所耗费的功夫大概比实行因变量中的代码须要更长的功夫。在这种情景下,你不妨把因变量中的代码正片到从来挪用因变量的场合。7. 缩小对联东西的援用在vb中,经过运用.来实行东西的援用。比方:form1.text1.text 在上头的例子中,步调援用了两个东西:form1和text1。运用这种本领援用功效很低。但可惜的是,没有方法不妨制止它。步调员独一不妨做即是运用with大概将用另一个东西生存子东西(text1)。' 运用withwith frmmain.text1.text = "learn vb".alignment = 0.tag = "its my life".backcolor = vbblack.forecolor = vbwhiteend with 大概 ' 运用另一个东西生存子东西dim txttextbox as textboxset txttextbox = frmmain.text1txttextbox.text = "learn vb"txttextbox.alignment = 0txttextbox.tag = "its my life"txttextbox.backcolor = vbblacktxttextbox.forecolor = vbwhite 提防,上头提到的本领只实用于须要对一个东西的子东西举行操纵的功夫,底下这段代码是不精确的:with text1.text = "learn vb".alignment = 0.tag = "its my life".backcolor = vbblack.forecolor = vbwhiteend with 很悲惨的是,咱们往往不妨在本质的代码中创造一致于上头的代码。如许做只会使代码的实行速率更慢。因为是with块编写翻译后会产生一个分枝,会减少了特殊的处置处事。8. 查看字符串能否为台湾空中大学普遍步调员在查看字符串能否为空时会运用底下的本领:if text1.text = "" then' 实行操纵end if 很悲惨,举行字符串比拟须要的处置量以至比读取属性还要大。所以我倡导大师运用底下的本领:if len(text1.text) = 0 then' 实行操纵end if 9. 去除next要害字后的变量名在next要害字后加上变量名会引导代码的功效低沉。我也不领会干什么会如许,不过一个体味罢了。然而我想很罕见步调员会如许弄巧成拙,究竟大普遍步调员都是惜字如金的人。' 缺点的代码for icount = 1 to 10' 实行操纵next icount' 精确的代码for icount = 1 to 10' 实行操纵next 10. 运用数组,而不是多个变量当你有多个生存一致数据的变量时,不妨商量将她们用一个数组包办。在vb中,数组是最高效的数据构造之一。11. 运用动静数组,而不是静态数组运用动静数组对代码的实行速率不会爆发太大的感化,然而在某些情景下不妨俭朴洪量的资源。12. 废弃东西不管编写的是什么软硬件,步调员都须要商量在用户确定中断软硬件运转后开释软硬件占用的外存空间。但可惜的是很多步调员对这一点犹如并不是很留心。精确的做法是在退出步调前须要废弃步调中运用的东西。比方:dim fso as new filesystemobject' 实行操纵' 废弃东西set fso = nothing对于窗体,不妨举行卸载:unload frmmain 或set frmmain = nothing 13. 变长和定长字符串从本领上去说,与变长字符串比拟,定长字符串须要较少的处置功夫和空间。然而定长字符串的缺陷在乎在很多情景下,你都须要挪用trim因变量以去除字符串末的空字符,如许相反会贬低代码功效。以是只有是字符串的长度不会变革,要不仍旧运用变长字符串。14. 运用类模块,而不是activex控件只有activex控件波及到用户界面,要不尽管运用轻量的东西,比方类。这两者之间的功效有很大分别。15. 运用里面东西在波及到运用activex控件和dll的功夫,很多步调员爱好将它们编写翻译好,而后再介入工程中。我倡导你最佳不要如许做,由于从vb贯穿到一个外部东西须要奢侈洪量的cpu处置本领。每当你挪用本领或存取属性的功夫,城市滥用洪量的体例资源。即使你有activex控件或dll的源代码,将它们动作工程的独占东西。16. 缩小模块的数目有些人爱好将通用的因变量生存在模块中,对于这一点我表白赞许。然而在一个模块中只写上二三十行代码就有些好笑了。即使你不利害常须要模块,尽管不要运用它。如许做的因为是由于惟有在模块中的因变量或变量被挪用时,vb才将模块加载到外存中;当vb运用步调退出时,才会从外存中卸载那些模块。即使代码中惟有一个模块,vb就只会举行一次加载操纵,如许代码的功效就获得了普及;反之即使代码中有多个模块,vb会举行屡次加载操纵,代码的功效会贬低。17. 运用东西数组当安排用户界面时,对于同样典型的控件,步调员该当尽管运用东西数组。你不妨做一个试验:在窗口上增添100个picturebox,每个picturebox都有各别的称呼,运路途序。而后创造一个新的工程,同样在窗口上增添100个picturebox,然而这一次运用东西数组,运路途序,你不妨提防到两个步调加载功夫上的分辨。18. 运用move本领在变换东西的场所时,有些步调员爱好运用width,height,top和left属性。比方:image1.width = 100image1.height = 100image1.top = 0image1.left = 0 本质上如许做功效很低,由于步调窜改了四个属性,并且历次窜改之后,窗口城市被重绘。精确的做法是运用move本领:image1.move 0,0,100,100 19. 缩小图片的运用图片将占用洪量外存,并且处置图片也须要占用很多cpu资源。在软硬件中,即使大概的话,不妨商量用背局面来代替图片--固然这不过从本领职员的观点动身看这个题目。20. 运用activex dll,而不是activex控件即使你安排的activex东西不波及到用户界面,运用activex dll。编写翻译优化我所见过的很多vb步调员历来没有运用过编写翻译选项,也没有试图搞领会各个选项之间的分辨。底下让咱们来看一下各个选项的简直含意。1. p-代码(伪代码)和本机代码你不妨采用将软硬件编写翻译为p-代码或是本机代码。缺省选项是本机代码。那什么是p-代码和本机代码呢?p-代码:当在vb中实行代码时,vb开始是将代码编写翻译为p-代码,而后再证明实行编写翻译好的p-代码。在编写翻译情况下,运用这种代码要比本机代码快。采用p-代码后,编写翻译时vb将伪代码放入一个exe文献中。本机代码:本机代码是vb6此后才推出的选项。当编写翻译为exe文献后,本机代码的实行速率比p-代码快。采用本机代码后,编写翻译时vb运用呆板训令天生exe文献。在运用本机代码举行编写翻译时,我创造有功夫会引入少许莫明其妙的缺点。在编写翻译情况中我的代码实足精确地被实行了,然而用本机代码选项天生的exe文献却不许精确实行。常常这种情景是在卸载窗口或弹出打字与印刷窗口时爆发的。我经过在代码中介入doevent语句处置了这个题目。固然展示这种情景的几率特殊少,大概有些vb步调员历来没有遇到过,然而它简直生存。在本机代码中再有几个选项:a) 代码速率优化:该选项不妨编写翻译出速率较快的实行文献,但实行文献比拟大。引荐运用b) 代码巨细优化:该选项不妨编写翻译出比拟小的实行文献,然而以丧失速率为价格的,不引荐运用。c) 无优化:该选项不过将p-代码变化为本机代码,没有做任何优化。在调节和测试代码时不妨运用。d) 对准pentium pro优化:固然该项不是本机代码中的缺省选项,然而我常常会运用该选项。该选项编写翻译出的可执路途序在pentium pro和pentium 2之上的呆板上不妨运转得更快,而在比拟老的呆板上要稍微慢少许。商量到此刻用pentium 2都是保守,以是引荐大师运用该选项。e) 爆发标记化调节和测试消息:该项在编写翻译进程中天生少许调节和测试消息,运用户不妨运用visual c++一类的东西来调节和测试编写翻译好的代码。运用该选项会天生一个.pdf文献,该文献记载了可实行文献中的标记消息。当步调具有api因变量或dll挪用时,该选项仍旧比拟有扶助的。2. 高档优化高档优化中的树立不妨扶助你普及软硬件的速率,然而有功夫也会引入少许缺点,所以我倡导大师尽管提防地运用它们。即使在代码中有比拟大的轮回体大概搀杂的数学演算时,选中高档优化中的某些项会大幅度提高代码的本能。即使你运用了高档优化功效,我倡导你庄重尝试编写翻译好的文献。a) 假设无别号:不妨普及轮回体中代码的实行功效,然而在即使经过变量的援用变换变量值的情景下,比方挪用一个本领,变量的援用动作本领的参数,在本领中变换了变量的值的话,就会激励缺点。有大概不过归来的截止缺点,也有大概是引导步调阻碍运转的重要缺点。b) 废除数组绑定查看、废除平头溢出查看和废除浮点缺点查看:在步调运转时,即使经过那些查看创造了缺点,缺点处置代码会处置那些缺点。然而即使废除了那些查看,爆发了缺点步调就没辙处置。惟有当你决定你的代码中不会展示上头的那些缺点时,你才不妨运用那些选项。它们将使软硬件的本能获得很大的提高。c) 承诺不舍入的浮点操纵:采用该选项不妨是编写翻译出来的步调更快地处置浮点操纵。它独一的缺陷即是在比拟两个浮点数时大概会引导不精确的截止。d) 废除pentium fdiv安定查看:该选项是对准少许老的pentium芯片树立的,此刻可见已过程时了。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.