當前位置:編程學習大全網 - 源碼下載 - 易語言代碼如何編寫

易語言代碼如何編寫

1. 使用整數和長整數

提高代碼運行速度最簡單的方法莫過於使用正確的數據類型了。也許妳不相信,但是正確地選擇數據類型可以大幅度提升代碼的性能。在大多數情況下,程序員可以將短整數型、小數型和雙精度小數型的變量替換為整數(Integer)或長整數(Long)類型的變量,因為易語言處理整數和長整數的能力遠遠高於處理其它幾種數據類型。

在大多數情況下,程序員選擇使用小數型或雙精度小數型的原因是因為它們能夠保存小數。但是小數也可以保存在整數類型的變量中。例如程序中約定有三位小數,那麽只需要將保存在整數型變量中的數值除以1000就可以得到結果。根據我的經驗,使用整數和長整數替代短整數型、小數型和雙精度小數型後,代碼的運行速度可以提高將近10倍。

但是我們也不要老是強調使用使用整數和長整數,因為在程序中數據類型的定義還牽涉壹個關鍵的問題,就是數據的安全,頻繁而無規範地定義 數據類型會使算法出現漏洞,是數據的安全和臨界判斷有問題.對財務和工程計算而言,小數點的精度是很敏感的數據,只能用雙精度數據來規範.另外, 換成整型也會導致程序可讀性急劇下降.

2. 避免使用通用型數據

通用型的變量需要16個字節的空間來保存數據,而壹個整數(Integer)只需要2個字節。通常使用通用型變量的目的是為了減少設計的工作量和代碼量,也有的程序員圖個省事而使用它。但是如果壹個軟件經過了嚴格設計和按照規範編碼的話,完全可以避免使用變體類型。

3. 盡量避免使用屬性

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

容器名: 數值 類型:整數型

容器名: 容器 類型:整數型

計次循環首(7,容器)

文本1.內容 = 文本1.內容 + #換行符 + 到文本((數值×容器))

計次循環尾()

下面這段代碼的執行速度是上面代碼的20倍。

容器名: 數值 類型:整數型

容器名: 容器 類型:整數型

容器名: 文本 類型:文本型

文本 = 文本1.內容

計次循環首(7,容器)

文本 = 文本 + #換行符 + 到文本((數值×容器))

計次循環尾()

文本1.內容 = 文本

另外要註意,這個涉及壹個編程思路, 用屬性當變量的作法大多數情況可以簡化算法。所以有時候也不能壹味強調用變量代替屬性。

6. 避免調用很短的子程序

調用只有幾行代碼的子程序也是不經濟的--調用子程序所花費的時間或許比執行子程序中的代碼需要更長的時間。在這種情況下,妳可以把子程序中的代碼拷貝到原來調用子程序的地方。 但是有時候小的子程序可能會被調用很多次而不是只有兩三次,這時就應該調用它。

7. 減少對子對象的引用

在易語言中,通過使用.來實現對象的引用。例如: 窗口1.編輯框1.內容

在上面的例子中,程序引用了兩個對象:窗口1和編輯框1。利用這種方法引用效率很低。但遺憾的是,沒有辦法可以避免它。我的“多媒體模塊”就有這個缺點。

8. 檢查文本型數據是否為空

大多數易語言用戶在檢查文本型數據是否為空時會使用下面的方法: 如果 (文本1.內容 = "" ) 註釋: 執行操作 結束如果

很不幸,進行字符串比較需要的處理量甚至比讀取屬性還要大。因此我建議大家使用下面的方法: 如果 (到數值(文本1.內容) = 0 ) 註釋: 執行操作 結束如果 另壹個不同的意見是:問題在於當文本字串為 "ABC"之類的非數值型時, 到數值("ABC")=0並不表示為空。文本比較的效率並不低,在底層算法中,壹般會直接比較長度才會繼續比較內容。

9. 使用數組,而不是多個變量

當妳有多個保存類似數據的變量時,可以考慮將他們用壹個數組代替。在易語言中,數組是最高效的數據結構之壹。

10. 盡量使用動態數組,而不是靜態數組

使用動態數組對代碼的執行速度不會產生太大的影響,但是在某些情況下可以節約大量的資源。

11. 銷毀對象

無論編寫的是什麽軟件,程序員都需要考慮在用戶決定終止軟件運行後釋放軟件占用的內存空間。但遺憾的是很多用戶對這壹點好像並不是很在意。正確的做法是在退出程序前需要銷毀程序中使用的對象。例如:關閉數據庫:關閉(數據庫名稱)、全部關閉(),關閉打開(播放)的文件,關閉載入的圖片等。 中止程序執行時應該要關閉打開的文件(包括數據庫文件、圖片文件等),但是窗口銷毀對銷毀窗口及窗口單元來說是自動的,已足夠做釋放用,在窗口內最好不要隨意銷毀窗口單元,可能會導致程序運行中的潛在的單元數據訪問而崩潰.只有在圖形buffer情況才需要經常銷毀。

12. 盡量使用內部子程序,減少易模塊的數量 因為從易語言連接到壹個外部對象需要耗費大量的CPU處理能力。每當妳調用接口函數的時候,都會浪費大量的系統資源。 另外只有在易模塊中的接口函數或變量被調用時,易語言才將易模塊加載到內存中;當易語言應用程序退出時,才會從內存中卸載這些模塊。如果代碼中只有壹個模塊,易語言就只會進行壹次加載操作,這樣代碼的效率就得到了提高;反之如果代碼中有多個模塊,易語言會進行多次加載操作,代碼的效率會降低。

13. 使用對象數組

當設計用戶界面時,對於同樣類型的控件,程序員應該盡量使用對象數組。妳可以做壹個實驗:在窗口上添加100個圖片框,每個圖片框都有不同的名稱,運行程序。然後創建壹個新的工程,同樣在窗口上添加100個圖片框,不過這壹次使用對象數組,運行程序,妳可以註意到兩個程序加載時間上的差別。 也有人認為兩者從邏輯上看效率應該差不多。

14. 使用窗口單元“移動”方法

在改變對象的位置時,有些用戶喜歡使用“寬度”、“高度”、“頂邊”和“左邊”屬性。例如: 按鈕1.寬度 = 100 按鈕1.高度 = 100 按鈕1.頂邊 = 0 按鈕1.左邊 = 0

實際上這樣做效率很低,因為程序修改了四個屬性,而且每次修改之後,窗口都會被重繪。正確的做法是使用Move方法: 按鈕1.移動(0,0,100,100)

15. 減少圖片的使用

圖片將占用大量內存,而且處理圖片也需要占用很多CPU資源。在軟件中,如果可能的話,可以考慮用背景色來替代圖片--當然這只是從技術人員的角度出發看這個問題。 但是如果為了優化程序界面,使用圖形換來的好處可能遠勝節約下的資源,否則就不會有XP,也不會有遊戲的進步了。

16. 編譯優化 易語言的程序編譯有三個選項:“編譯”、“獨立編譯”、“編譯生成安裝軟件”。優先使用的次序應該是“編譯生成安裝軟件”、“編譯”、“獨立編譯”,因為“獨立編譯”會將易語言系統中所有的支持庫都編譯進去,而“編譯生成安裝軟件”只選擇程序中必要的支持庫編譯。要脫離易語言環境也可以運行,就不要使用“編譯”而應用“編譯生成安裝軟件”或“獨立編譯”。

總結:執行效率和程序可讀性永遠是對矛盾 ,兩者應該通盤考慮;資源占用和程序易用性永遠是對矛盾,兩者也應該通盤考慮。

基於此,下面探討壹些提高程序的效率的規則。

規則1不要壹味地追求程序的效率,應當在滿足正確性、可靠性、健壯性、可讀性等質量因素的前提下,設法提高程序的效率。

規則2以提高程序的全局效率為主,提高局部效率為輔。

規則3在優化程序的效率時,應當先找出限制效率的“瓶頸”,不要在無關緊要之處優化。

規則4先優化數據結構和算法,再優化執行代碼。先考慮某功能是否可以用函數(命令)來實現,如果找不到這樣的函數,再考慮用其他代碼實現。

規則5有時候時間效率和空間效率可能對立,此時應當分析那個更重要,作出適當的折衷。例如多花費壹些內存來提高性能。

規則6不要在什麽時候都只追求緊湊的代碼,因為緊湊的代碼並不能產生高效的機器碼。

  • 上一篇:我下了個電影後綴是.OGM怎麽放不了,暴風也不行,說沒有相應的解碼器
  • 下一篇:文言文生成器(安卓)
  • copyright 2024編程學習大全網