人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

如何編寫高質量的VB代碼(上)

如何編寫高質量的VB代碼(上)

更新時間:2022-07-14 文章作者:未知 信息來源:網絡 閱讀次數:

簡介:
  本文描述了如何通過一些技術手段來提高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個字節。通常使用變體類型的目的是為了減少設計的工4作量和代碼量,也有的程序員圖個省事而使用它。但是如果一個軟件經過了嚴格設計和按照規范編碼的話,完全可以避免使用變體類型。

  在這里順帶提一句,對于Object對象也存在同樣的問題。請看下面的代碼:

     Dim FSO
  Set FSO = New Scripting.FileSystemObject
  或
  Dim FSO as object
  Set FSO = New Scripting.FileSystemObject

  上面的代碼由于在申明的時候沒有指定數據類型,在賦值時將浪費內存和CPU時間。正確的代碼應該象下面這樣:


     Dim FSO as New FileSystemObject

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

     Dim intCon as Integer
  For intCon = 0 to Ubound(SomVar())
  Text1.Text = Text1.Text & vbcrlf & SomeVar(intCon)
  Next intCon
  下面這段代碼的執行速度是上面代碼的20倍。
  Dim intCon as Integer
  Dim sOutput as String
  For intCon = 0 to Ubound(SomeVar())
  sOutput = sOutput & vbCrlf &
  SomeVar(intCon)
  Next
  Text1.Text = sOutput

[1] [2]  下一頁

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 穆棱市| 治多县| 黑龙江省| 屏南县| 布尔津县| 泰来县| 泗水县| 美姑县| 区。| 沙坪坝区| 安义县| 梁山县| 佳木斯市| 高陵县| 海丰县| 黎川县| 余江县| 互助| 长垣县| 石阡县| 鄂伦春自治旗| 沅江市| 新竹市| 龙游县| 理塘县| 花垣县| 蒙自县| 阜康市| 永嘉县| 昌乐县| 时尚| 托克逊县| 卢湾区| 凤山市| 新兴县| 富阳市| 高尔夫| 即墨市| 敦煌市| 通城县| 定陶县|