• <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 | 作者: 未知 | 來源: 不詳 | 查看: 31次 | 進入軟件測試論壇討論

    領測軟件測試網  1.部件可在需要時加載,不需要時卸載。

      2.在Win95或WinNT下,即使應用程序的其他部分為16位部件,跨進程的部件也可以是32位的執行程序。

      3.遠程部件可使用網絡上其他機器的資源。

      另外,部件可被單獨調試并可在其他應用程序里重用。在確定如何使用分段技術來優化應用程序之前,必須估計到能創建的部件類型和怎樣適合應用程序。使用VB專業版和企業版,能創建以下三類部件:

      1.跨進程部件

      2.進程內部件

      3.遠程部件

      三種類型并不互相排斥,可以在一個應用程序里同時使用這三類部件,但從優化應用程序的觀點看,它們又各有極不相同的特性。

      一、跨進程部件是一個可執行程序,它可向其他程序提供服務,像其它的可執行程序一樣,啟動后,在自己的進程空間有自己的堆棧。因此,當客戶使用應用程序提供的對象時,操作將從客戶的進程空間轉到部件的進程空間。

      與其他類型相比,跨進程部件提供了一些很有價值的特點:

      1.異步操作(“線程”)。

      2.部件不能捕獲的錯誤不會導致調用應用程序崩潰。

      3.可在16位和32位應用程序之間相互操作。

      從優化觀點看,第一點和第三點最有意義。因為跨進程部件是一個分離的程序,可以與作為客戶端的部件異步操作。它有一個單獨的“線程”,與客戶程序構成多任務(從技術角度上講,這不是線程,而是一個分離的進程;但從概念上看,二者等價)。兩個程序可相互通訊并共享對象。在應用程序執行一些費時的操作時,異步操作就特別有用?蛻艨上日{用部件執行該項操作,而后繼續響應用戶。

      即使慣用的16位應用程序或部件在32位系統上運行,也可以不必立即將它們改為32位。若使用跨進程部件將應用程序分段時,則可將16位和32位部件混合在一起并互相協調。這有助于充分利用32位部件特性,并保護在16位部件上的投資。

      考慮它們所有的能力,跨進程部件都有一個明顯的缺點:性能。以下幾點可顯現這些不足:

      1.啟動速度慢

      2.跨進程調用的開銷大

      跨進程部件是一個由VB創建的執行程序,因此,與應用程序的啟動相關的問題也同樣存在。當從另一個VB程序中調用在VB中寫的跨進程部件時,幾乎所有的支持DLL已經被加載,這就大大縮短了啟動部件的時間。許多部件比VB應用程序的平均規模還小,它們具有很少或根本沒有要加載的窗體,這又進一步縮短了加載時間。然而,跨進程部件啟動還是要比進程內部件慢。

    延伸閱讀

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


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