麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > 易語(yǔ)言 > 正文

編寫(xiě)高質(zhì)量易語(yǔ)言代碼注意點(diǎn)

2024-07-21 02:54:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天在淘百度的時(shí)候看到了這篇文章。覺(jué)得很不錯(cuò)。就給親們分享下。 

如果你想學(xué)好易語(yǔ)言的話請(qǐng)仔細(xì)看看以下的內(nèi)容吧。看完此文之后保證你大有收獲。 

什么是一個(gè)高效的軟件?一個(gè)高效的軟件不僅應(yīng)該比實(shí)現(xiàn)同樣功能的軟件運(yùn)行得更快,還應(yīng)該消耗更少的系統(tǒng)資源。程序的時(shí)間效率是指運(yùn)行速度,空間效率是指程序占用內(nèi)存或者外存的狀況。另外程序的效率我們也可以分為全局效率和局部效率。全局效率是指站在整個(gè)系統(tǒng)的角度上考慮的效率,局部效率是指站在模塊或函數(shù)角度上考慮的效率。 

1. 使用整數(shù)和長(zhǎng)整數(shù) 

提高代碼運(yùn)行速度最簡(jiǎn)單的方法莫過(guò)于使用正確的數(shù)據(jù)類(lèi)型了。也許你不相信,但是 正確地選擇數(shù)據(jù)類(lèi)型可以大幅度提升代碼的性能。在大多數(shù)情況下,程序員可以將短整數(shù)型、小數(shù)型和雙精度小數(shù)型的變量替換為整數(shù)(Integer)或長(zhǎng)整數(shù)(Long)類(lèi)型的變量,因?yàn)橐渍Z(yǔ)言處理整數(shù)和長(zhǎng)整數(shù)的能力遠(yuǎn)遠(yuǎn)高于處理其它幾種數(shù)據(jù)類(lèi)型。 

在大多數(shù)情況下,程序員選擇使用小數(shù)型或雙精度小數(shù)型的原因是因?yàn)樗鼈兡軌虮4嫘?shù)。但是小數(shù)也可以保存在整數(shù)類(lèi)型的變量中。例如程序中約定有三位小數(shù),那么只需要將保存在整數(shù)型變量中的數(shù)值除以1000就可以得到結(jié)果。根據(jù)我的經(jīng)驗(yàn),使用整數(shù)和長(zhǎng)整數(shù)替代短整數(shù)型、小數(shù)型和雙精度小數(shù)型后,代碼的運(yùn)行速度可以提高將近10倍。 

但是我們也不要老是強(qiáng)調(diào)使用使用整數(shù)和長(zhǎng)整數(shù),因?yàn)樵诔绦蛑袛?shù)據(jù)類(lèi)型的定義還牽涉一個(gè)關(guān)鍵的問(wèn)題,就是數(shù)據(jù)的安全,頻繁而無(wú)規(guī)范地定義數(shù)據(jù)類(lèi)型會(huì)使算法出現(xiàn)漏洞,是數(shù)據(jù)的安全和臨界判斷有問(wèn)題.對(duì)財(cái)務(wù)和工程計(jì)算而言,小數(shù)點(diǎn)的精度是很敏感的數(shù)據(jù),只能用雙精度數(shù)據(jù)來(lái)規(guī)范.另外, 換成整型也會(huì)導(dǎo)致程序可讀性急劇下降. 

2. 避免使用通用型數(shù)據(jù) 

通用型的變量需要16個(gè)字節(jié)的空間來(lái)保存數(shù)據(jù),而一個(gè)整數(shù)(Integer)只需要2個(gè)字節(jié)。通常使用通用型變量的目的是為了減少設(shè)計(jì)的工作量和代碼量,也有的程序員圖個(gè)省事而使用它。但是如果一個(gè)軟件經(jīng)過(guò)了嚴(yán)格設(shè)計(jì)和按照規(guī)范編碼的話,完全可以避免使用變體類(lèi)型。 

3. 盡量避免使用屬性 

在平時(shí)的代碼中,最常見(jiàn)的比較低效的代碼就是在可以使用變量的情況下,反復(fù)使用屬性(Property),尤其是在循環(huán)中。要知道存取變量的速度是存取屬性的速度的20倍左右。下面這段代碼是很多程序員在程序中會(huì)使用到的: 

容器名: 數(shù)值 類(lèi)型:整數(shù)型 
容器名: 容器 類(lèi)型:整數(shù)型 
計(jì)次循環(huán)首(7,容器) 
文本1.內(nèi)容 = 文本1.內(nèi)容 + #換行符 + 到文本((數(shù)值×容器)) 
計(jì)次循環(huán)尾() 
下面這段代碼的執(zhí)行速度是上面代碼的20倍。 
容器名: 文本 類(lèi)型:文本型 
文本 = 文本1.內(nèi)容 
文本 = 文本 + #換行符 + 到文本((數(shù)值×容器)) 
文本1.內(nèi)容 = 文本 
另外要注意,這個(gè)涉及一個(gè)編程思路,用屬性當(dāng)變量的作法大多數(shù)情況可以簡(jiǎn)化算法。所以有時(shí)候也不能一味強(qiáng)調(diào)用變量代替屬性。 

6. 避免調(diào)用很短的子程序 

調(diào)用只有幾行代碼的子程序也是不經(jīng)濟(jì)的--調(diào)用子程序所花費(fèi)的時(shí)間或許比執(zhí)行子程序中的代碼需要更長(zhǎng)的時(shí)間。在這種情況下,你可以把子程序中的代碼拷貝到原來(lái)調(diào)用子程序的地方。 

但是有時(shí)候小的子程序可能會(huì)被調(diào)用很多次而不是只有兩三次,這時(shí)就應(yīng)該調(diào)用它。 

7. 減少對(duì)子對(duì)象的引用 

在易語(yǔ)言中,通過(guò)使用.來(lái)實(shí)現(xiàn)對(duì)象的引用。例如: 
窗口1.編輯框1.內(nèi)容 
在上面的例子中,程序引用了兩個(gè)對(duì)象:窗口1和編輯框1。利用這種方法引用效率很低。但遺憾的是,沒(méi)有辦法可以避免它。我的“多媒體模塊”就有這個(gè)缺點(diǎn)。 

8. 檢查文本型數(shù)據(jù)是否為空 

大多數(shù)易語(yǔ)言用戶(hù)在檢查文本型數(shù)據(jù)是否為空時(shí)會(huì)使用下面的方法: 
如果 (文本1.內(nèi)容 = "" ) 
注釋?zhuān)?執(zhí)行操作 
結(jié)束如果 
很不幸,進(jìn)行字符串比較需要的處理量甚至比讀取屬性還要大。因此我建議大家使用下面的方法: 
如果 (到數(shù)值(文本1.內(nèi)容) = 0 ) 
另一個(gè)不同的意見(jiàn)是:?jiǎn)栴}在于當(dāng)文本字串為 "ABC"之類(lèi)的非數(shù)值型時(shí), 到數(shù)值("ABC")=0并不表示為空。文本比較的效率并不低,在底層算法中,一般會(huì)直接比較長(zhǎng)度才會(huì)繼續(xù)比較內(nèi)容。 

9. 使用數(shù)組,而不是多個(gè)變量 

當(dāng)你有多個(gè)保存類(lèi)似數(shù)據(jù)的變量時(shí),可以考慮將他們用一個(gè)數(shù)組代替。在易語(yǔ)言中,數(shù)組是最高效的數(shù)據(jù)結(jié)構(gòu)之一。 

10. 盡量使用動(dòng)態(tài)數(shù)組,而不是靜態(tài)數(shù)組 

使用動(dòng)態(tài)數(shù)組對(duì)代碼的執(zhí)行速度不會(huì)產(chǎn)生太大的影響,但是在某些情況下可以節(jié)約大量的資源。 

11. 銷(xiāo)毀對(duì)象 

無(wú)論編寫(xiě)的是什么軟件,程序員都需要考慮在用戶(hù)決定終止軟件運(yùn)行后釋放軟件占用的內(nèi)存空間。但遺憾的是很多用戶(hù)對(duì)這一點(diǎn)好像并不是很在意。正確的做法是在退出程序前需要銷(xiāo)毀程序中使用的對(duì)象。例如:關(guān)閉數(shù)據(jù)庫(kù):關(guān)閉(數(shù)據(jù)庫(kù)名稱(chēng))、全部關(guān)閉(),關(guān)閉打開(kāi)(播放)的文件,關(guān)閉載入的圖片等。 

中止程序執(zhí)行時(shí)應(yīng)該要關(guān)閉打開(kāi)的文件(包括數(shù)據(jù)庫(kù)文件、圖片文件等),但是窗口銷(xiāo)毀對(duì)銷(xiāo)毀窗口及窗口單元來(lái)說(shuō)是自動(dòng)的,已足夠做釋放用,在窗口內(nèi)最好不要隨意銷(xiāo)毀窗口單元,可能會(huì)導(dǎo)致程序運(yùn)行中的潛在的單元數(shù)據(jù)訪問(wèn)而崩潰.只有在圖形buffer情況才需要經(jīng)常銷(xiāo)毀。 

12. 盡量使用內(nèi)部子程序,減少易模塊的數(shù)量 

因?yàn)閺囊渍Z(yǔ)言連接到一個(gè)外部對(duì)象需要耗費(fèi)大量的CPU處理能力。每當(dāng)你調(diào)用接口函數(shù)的時(shí)候,都會(huì)浪費(fèi)大量的系統(tǒng)資源。 
另外只有在易模塊中的接口函數(shù)或變量被調(diào)用時(shí),易語(yǔ)言才將易模塊加載到內(nèi)存中;當(dāng)易語(yǔ)言應(yīng)用程序退出時(shí),才會(huì)從內(nèi)存中卸載這些模塊。如果代碼中只有一個(gè)模塊,易語(yǔ)言就只會(huì)進(jìn)行一次加載操作,這樣代碼的效率就得到了提高;反之如果代碼中有多個(gè)模塊,易語(yǔ)言會(huì)進(jìn)行多次加載操作,代碼的效率會(huì)降低。 

13. 使用對(duì)象數(shù)組 

當(dāng)設(shè)計(jì)用戶(hù)界面時(shí),對(duì)于同樣類(lèi)型的控件,程序員應(yīng)該盡量使用對(duì)象數(shù)組。你可以做一個(gè)實(shí)驗(yàn):在窗口上添加100個(gè)圖片框,每個(gè)圖片框都有不同的名稱(chēng),運(yùn)行程序。然后創(chuàng)建一個(gè)新的工程,同樣在窗口上添加100個(gè)圖片框,不過(guò)這一次使用對(duì)象數(shù)組,運(yùn)行程序,你可以注意到兩個(gè)程序加載時(shí)間上的差別。 
也有人認(rèn)為兩者從邏輯上看效率應(yīng)該差不多。 

14. 使用窗口單元“移動(dòng)”方法 

在改變對(duì)象的位置時(shí),有些用戶(hù)喜歡使用“寬度”、“高度”、“頂邊”和“左邊”屬性。例如: 
按鈕1.寬度 = 100 
按鈕1.高度 = 100 
按鈕1.頂邊 = 0 
按鈕1.左邊 = 0 
實(shí)際上這樣做效率很低,因?yàn)槌绦蛐薷牧怂膫€(gè)屬性,而且每次修改之后,窗口都會(huì)被重繪。正確的做法是使用Move方法: 
按鈕1.移動(dòng)(0,0,100,100) 

15. 減少圖片的使用 

圖片將占用大量?jī)?nèi)存,而且處理圖片也需要占用很多CPU資源。在軟件中,如果可能的話,可以考慮用背景色來(lái)替代圖片--當(dāng)然這只是從技術(shù)人員的角度出發(fā)看這個(gè)問(wèn)題。 
但是如果為了優(yōu)化程序界面,使用圖形換來(lái)的好處可能遠(yuǎn)勝節(jié)約下的資源,否則就不會(huì)有XP,也不會(huì)有游戲的進(jìn)步了。 

16. 編譯優(yōu)化 

易語(yǔ)言的程序編譯有三個(gè)選項(xiàng):“編譯”、“獨(dú)立編譯”、“編譯生成安裝軟件”。優(yōu)先使用的次序應(yīng)該是“編譯生成安裝軟件”、“編譯”、“獨(dú)立編譯”,因?yàn)?ldquo;獨(dú)立編譯”會(huì)將易語(yǔ)言系統(tǒng)中所有的支持庫(kù)都編譯進(jìn)去,而“編譯生成安裝軟件”只選擇程序中必要的支持庫(kù)編譯。要脫離易語(yǔ)言環(huán)境也可以運(yùn)行,就不要使用“編譯”而應(yīng)用“編譯生成安裝軟件”或“獨(dú)立編譯”。 

總結(jié):執(zhí)行效率和程序可讀性永遠(yuǎn)是對(duì)矛盾,兩者應(yīng)該通盤(pán)考慮;資源占用和程序易用性永遠(yuǎn)是對(duì)矛盾,兩者也應(yīng)該通盤(pán)考慮。基于此,下面探討一些提高程序的效率的規(guī)則。 
【規(guī)則1】不要一味地追求程序的效率,應(yīng)當(dāng)在滿足正確性、可靠性、健壯性、可讀性等質(zhì)量因素的前提下,設(shè)法提高程序的效率。 
【規(guī)則2】以提高程序的全局效率為主,提高局部效率為輔。 
【規(guī)則3】在優(yōu)化程序的效率時(shí),應(yīng)當(dāng)先找出限制效率的“瓶頸”,不要在無(wú)關(guān)緊要之處優(yōu)化。 
【規(guī)則4】先優(yōu)化數(shù)據(jù)結(jié)構(gòu)和算法,再優(yōu)化執(zhí)行代碼。先考慮某功能是否可以用函數(shù)(命令)來(lái)實(shí)現(xiàn),如果找不到這樣的函數(shù),再考慮用其他代碼實(shí)現(xiàn)。 
【規(guī)則5】有時(shí)候時(shí)間效率和空間效率可能對(duì)立,此時(shí)應(yīng)當(dāng)分析那個(gè)更重要,作出適當(dāng)?shù)恼壑浴@缍嗷ㄙM(fèi)一些內(nèi)存來(lái)提高性能。 
【規(guī)則6】不要在什么時(shí)候都只追求緊湊的代碼,因?yàn)榫o湊的代碼并不能產(chǎn)生高效的機(jī)器碼。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到易語(yǔ)言教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜a狂野欧美一区二区 | 在线播放黄色网址 | 91久久另类重口变态 | 一级黄色在线观看 | 精品国产一区二区三区四区在线 | 91精品国产乱码久久久久久久久 | 色视频在线 | 精品国产一区二区久久 | 日韩av电影免费看 | 2021狠狠操| 亚洲最黄视频 | 成人免费av在线 | 国产日本在线播放 | 国产亚洲精品久久久久久久久 | 亚州综合网 | 国产视频在线观看一区二区三区 | 久久精品电影网 | 在线播放91| 精品国产91久久久 | 国产四区 | 免费观看一级黄色片 | 爱操视频 | 精品av在线播放 | av久草| 国产亚洲精品yxsp | 日本在线看片 | 黄色特级视频 | 1314av| 视频一区国产 | 欧美毛片免费观看 | 一区二区三区日韩精品 | 经典三级av在线 | 久久久青青草 | 亚洲成年人免费网站 | 好吊一区二区三区 | 性爱免费视频 | 黄色特级毛片 | 成人18免费观看 | 狠狠色噜噜狠狠狠米奇9999 | 国产精品6区 | 91精品国产综合久久婷婷香 |