亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 易語言 > 正文

編寫高質量易語言代碼注意點

2024-07-21 02:54:35
字體:
來源:轉載
供稿:網友

今天在淘百度的時候看到了這篇文章。覺得很不錯。就給親們分享下。 

如果你想學好易語言的話請仔細看看以下的內容吧??赐甏宋闹蟊WC你大有收獲。 

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

1. 使用整數和長整數 

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

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

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

2. 避免使用通用型數據 

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

3. 盡量避免使用屬性 

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

容器名: 數值 類型:整數型 
容器名: 容器 類型:整數型 
計次循環首(7,容器) 
文本1.內容 = 文本1.內容 + #換行符 + 到文本((數值×容器)) 
計次循環尾() 
下面這段代碼的執行速度是上面代碼的20倍。 
容器名: 文本 類型:文本型 
文本 = 文本1.內容 
文本 = 文本 + #換行符 + 到文本((數值×容器)) 
文本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】不要在什么時候都只追求緊湊的代碼,因為緊湊的代碼并不能產生高效的機器碼。


注:相關教程知識閱讀請移步到易語言教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲日韩欧美视频一区| 久久久人成影片一区二区三区观看| 亚洲国产天堂久久国产91| 日韩视频免费中文字幕| 91免费国产网站| 亚洲精品中文字幕女同| 色综合伊人色综合网站| 日韩亚洲综合在线| 久久久久久尹人网香蕉| 日韩极品精品视频免费观看| 国产免费久久av| 欧美国产视频一区二区| 欧美激情免费观看| 欧美精品做受xxx性少妇| 欧美风情在线观看| 亚洲欧美激情一区| 美女av一区二区三区| 欧美日本国产在线| 欧美日韩国产综合视频在线观看中文| 国产成人亚洲精品| 精品电影在线观看| 欧美在线观看网址综合| 欧美精品18videos性欧美| 91日本在线观看| 91av视频在线| 日韩中文字幕在线观看| 国外成人在线播放| 亚洲资源在线看| 久久免费成人精品视频| 日韩欧美国产网站| 91在线观看免费高清| 国产精品扒开腿做爽爽爽视频| 亚洲欧美视频在线| 成人精品一区二区三区电影免费| 国产自摸综合网| 国产成人精品a视频一区www| 97在线精品视频| 98精品在线视频| 欧美一级大胆视频| 国产精品手机播放| 亚洲国产精品电影在线观看| 日本国产高清不卡| 精品中文视频在线| 国产精品久久久久久搜索| 国产精品96久久久久久| 97在线观看视频国产| 日韩电影第一页| 国产婷婷97碰碰久久人人蜜臀| 亚洲精品一区二区三区婷婷月| 亚洲欧美在线免费观看| 欧美激情videoshd| 亚洲国语精品自产拍在线观看| 国产欧美最新羞羞视频在线观看| 97超级碰碰人国产在线观看| 色偷偷av一区二区三区乱| 亚洲天堂av综合网| 久久精品中文字幕一区| 欧美理论电影网| 国产精品永久免费| 国产精品久久久久久久午夜| 国产男女猛烈无遮挡91| 国产aⅴ夜夜欢一区二区三区| 亚洲欧美日韩图片| 国产91露脸中文字幕在线| 日韩国产欧美区| 久久深夜福利免费观看| 中文字幕日韩电影| 久久久久久久久久久91| 欧美成人性色生活仑片| 97av在线影院| 欧美性色视频在线| 最近2019中文字幕一页二页| 欧美性猛交xxxx乱大交极品| 亚洲美女激情视频| 日韩在线播放视频| 国产精品成人va在线观看| 欧洲s码亚洲m码精品一区| 久久亚洲一区二区三区四区五区高| 精品久久香蕉国产线看观看亚洲| 欧美另类极品videosbestfree| 久久777国产线看观看精品| 韩国视频理论视频久久| 欧美性猛交xxxx免费看漫画| 伊人伊人伊人久久| 中文字幕免费精品一区| 成人性生交大片免费观看嘿嘿视频| 色偷偷888欧美精品久久久| 欧美日韩国内自拍| 91精品国产成人www| 国产精品96久久久久久| 欧美精品免费在线| 伊人久久久久久久久久久久久| 亚洲黄页视频免费观看| 国产精品自拍小视频| 亚洲第一网站男人都懂| 亚洲精品国产精品国自产在线| 日韩在线免费观看视频| 国自在线精品视频| 北条麻妃一区二区在线观看| 亚洲日韩欧美视频| 久久亚洲精品毛片| 日韩欧美精品中文字幕| 国产精品男人爽免费视频1| 欧美壮男野外gaytube| 亚洲片国产一区一级在线观看| 亚洲激情小视频| 亚洲精品wwww| 97在线视频免费看| 欧美成人h版在线观看| 久精品免费视频| 国产成人极品视频| 欧美亚洲视频在线看网址| 国产精品精品国产| 狠狠躁夜夜躁人人爽天天天天97| 国产精品第2页| 久久伊人免费视频| 欧美视频国产精品| 国产在线观看91精品一区| 91高清在线免费观看| 国产色视频一区| 日韩av在线高清| 成人欧美一区二区三区在线湿哒哒| 欧美成人午夜激情视频| 欧美日韩免费在线| 91精品在线观看视频| 亚洲自拍欧美色图| 国产精品女视频| 亚洲高清一区二| 久久免费国产精品1| 久久五月天综合| 亚洲免费电影一区| 羞羞色国产精品| 久久精品国产视频| 精品亚洲va在线va天堂资源站| 日本久久久久久久| 亚洲iv一区二区三区| 亚洲图中文字幕| 亚洲第一页在线| 中文字幕亚洲一区在线观看| 亚洲精品wwwww| 欧美精品电影免费在线观看| 日韩欧美a级成人黄色| 欧美成人午夜免费视在线看片| 国产一区二区精品丝袜| 国产精品午夜视频| 97久久精品视频| 精品国产91久久久久久老师| 精品伊人久久97| 欧美视频在线免费| 亚洲免费伊人电影在线观看av| 精品人伦一区二区三区蜜桃免费| 欧美国产日韩中文字幕在线| 日韩在线观看免费全| 国产精品久久色| 日韩在线播放av| 2019中文字幕免费视频| 日韩欧亚中文在线| 国产中文日韩欧美| 中文字幕欧美国内| 国产精品私拍pans大尺度在线| 成人免费看吃奶视频网站| 日韩电影在线观看中文字幕| 69av在线播放| 色综合久久88色综合天天看泰|