• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    優化之路:精簡VB程序的代碼

    發布: 2007-5-25 09:19 | 作者: 未知 | 來源: 不詳 | 查看: 35次 | 進入軟件測試論壇討論

    領測軟件測試網  1.標志符名稱

      2.注釋

      3.空行

      其他元素,如變量、窗體和過程,確實要占用內存的一部分空間,最好將它們精簡以使效率更高。當應用程序作為一個.exe文件運行時,有幾項技術可用于縮小應用程序所需內存。以下技術可縮小代碼大。

      1.減小加載窗體數目

      2.減小控件數目

      3.用標簽代替文本框

      4.保持數據在磁盤文件和資源中,并且只在最需要時才加載

      5.組織模塊

      6.考慮替換Variant數據類型

      7.使用動態數組,并在刪除時回收內存空間

      8.消除死代碼和無用的變量

      9.回收被字符串和對象變量用過的空間

      一、每一個加載的窗體,無論是與否,都要占用一定數量的內存(其數量隨著窗體上控件的類型和數量,以及窗體上位圖的大小等不同而有所改變)。所以,為了節約內存,我們只在需要時才加載窗體,不需要時卸載窗體(而不是隱藏窗體)。記。喝魏螌Υ绑w的引用,和對用New聲明的窗體變量的引用,都會導致VB加載該窗體。

      當使用Unload方法卸載窗體時,只能卸載釋放掉部分窗體所占的空間。若想釋放所有空間,可用關鍵字Nothing使窗體的引用無效,如:

      Set From=Nothing

      二、設計應用程序時,窗體應盡量少用控件。實際的限制取決于控件的類型和系統。實際上,含有大量控件的窗體將運行緩慢。一項與之相關的技術就是:在設計時,盡可能使用控件數組,而不是在窗體上放置大量同類型的控件。

      三、標簽控件占用的Windows資源比文本框少,因此,在可能的情況下,應使用標簽代替文本框。

      例如,當窗體上需要一個隱藏的控件保存文本時,使用標簽應該更為有效。如果是需要大量文本域的數據輸入窗體,也可以用這種技術優化。這時,我們可以針對每一個域創建一個標簽,并使用單文本框輸入,在LostFocus事件中移動它到下一個標簽的位置:

     

    Prirate Sub Label1_LostFocus 
    Update Label1
    Label1.Option=Text1.text
    Text1.Move Label2.LeftLabel2.Top
    Text1.Text1 contents
    Text1.Text=Label2.Caption
    End Sub

      通過適當設置BackColor和BorderStyle的屬性,可以使標簽看起來像文本框,雖說這會需要更多的代碼,但對于含有大量文本域的窗體,它可以大大地減少資源的使用。

      四、在設計中,直接放入應用程序的數據(像屬性或代碼中的文字字符串和數值)將增加運行時程序占用的內存。運行時從磁盤文件和資源中加載數據可以減少內存占用。這對大的位圖和字符串特別有價值。

      五、VB只在需要時才加載模塊,即當代碼調用模塊中的一個過程時,模塊才被加載到內存中。若從未調用一特定模塊中的過程,VB決不會加載該模塊。因此,盡量把相關的過程放在同一個模塊中,讓VB只在需要時才加載模塊。

      六、Variant數據使用極其靈活,但占用內存大。所以,我們應考慮用其他數據類型代替Variant變量,特別是替代Variant變量數組。

      每一個Variant占用16個字節,而Integer占用2個字節,Double占用8個字節,長字符串變量占用4個字節,加上字符串中每一個字符占用1個字節,共5個字節。但Variant字符串變量會占用16個字節,再加上字符串中每一個字符占用一個字節。因為它們太大,消耗堆?臻g特別快,所以特煩人,尤其是在作局部變量或過程的參數時。但有些情況下,Variant變量的靈活性又能給程序帶來極大的方便,所以,用不用這項優化技術應根據應用程序的情況來作取舍。

      七、這項技術相信大家并不陌生。動態數組可用Erase或ReDim Preserve收回數組所占用的內存。例如:Erase MyArray,Erase用于完全刪除數組;ReDim Preserve則只縮短數組而不丟失其內容:

      ReDim Preserve MyArray10smallernum

      刪除固定數組不能收回它占用的內存空間,只可簡單地清除數組內每一個元素。如果元素是字符串,或包含字符串或數組的Variant變量,那刪除數組可回收這些字符串或Variant變量所占用的內存,而不是數組本身所占用的內存。

      八、當過程結束時,可自動回收(非靜態)局部字符串和數組變量所占用的內存空間。但是,全局、模塊級的字符串和數組變量一直存活到整個程序結束。要使應用程序盡量小,應盡可能地回收這些變量所占用的空間。

      九、再開發和修改程序時,可能遺留了一些死代碼——代碼中的一個完整過程,而它并沒有被任何地方調用,也可能聲明了一些不用的變量。雖然再創建.exe文件時,VB確實可刪除無用的常數,但不能刪除無用的變量和死代碼。

      要消除死代碼,可在”編輯“菜單中,使用”查找“命令搜索特定變量的引用;或者,當每個模塊都含有Option Explicit語句時,通過刪除或注釋該變量的聲明,并運行應用程序,可迅速發現變量是否被調用,若被調用,則VB會出錯,否則就沒被使用。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>