事務原則
事務可以提供重要的支持,以確保不會違反業務規則并維護數據一致性。事務可以確保一組相關任務作為一個單元成功或失敗。您可以使用事務來維護本地數據庫和其他資源(包括消息隊列的隊列)之間的一致性。對于需要在網絡連接不可用時使用脫機緩存數據的智能客戶端應用程序,您應該將事務性數據排隊,并且在網絡連接可用時將其與服務器進行同步。您 應該避免使用涉及到位于網絡上的資源的分布式事務,因為這些情況可能導致與不斷變化的網絡和資源響應時間有關的性能問題。如果您的應用程序需要在事務中涉 及到位于網絡上的資源,則應該考慮使用補償事務,以便使您的應用程序能夠在本地事務失敗時取消以前的請求。盡管補償事務在某些情況下可能不適用,但它們使 您的應用程序能夠按照松耦合方式在事務的上下文內與網絡資源交互,從而減少了不在本地計算機控制之下的資源對應用程序的性能造成不利影響的可能性。
制定性能目標
當您設計和規劃智能客戶端應用程序時,您應該仔細考慮性能方面的要求,并且定義合適的性能目標。在定義這些目標時,請考慮您將如何度量應用程序的實際性能。 您的性能度量標準應該明確體現應用程序的重要性能特征。請努力避免無法準確度量的模糊或不完整的目標,例如,“應用程序必須快速運行”或“應用程序必須快 速加載”。您需要了解應用程序的性能和可伸縮性目標,以便您可以設法滿足這些目標并且圍繞它們來規劃您的測試。請確保您的目標是可度量的和可驗證的。定義良好的性能度量標準使您可以準確跟蹤應用程序的性能,以便您可以確定應用程序是否能夠滿足它的性能目標。這些度量標準應該包括在應用程序測試計劃中,以便可以在應用程序的測試階段度量它們。本 節重點討論與智能客戶端應用程序相關的特定性能目標的定義。如果您還要設計和生成客戶端應用程序將消耗的網絡服務,則您還需要為這些服務定義適當的性能目 標。在此情況下,您應該確保考慮整個系統的性能要求,以及應用程序各個部分的性能與其他部分以及整個系統之間存在怎樣的關系。
性能調整和診斷
在設計和實現階段處理性能問題是實現應用程序性能目標的最劃算的方法。但是,您只有在開發階段經常且盡早測試應用程序的性能,才能真正有效地優化應用程序的性能。盡管針對性能進行設計和測試都很重要,但在這些早期階段優化每個組件和所有代碼不是有效的資源用法,因此應該予以避免。所以,應用程序可能存在您在設計階段 未預料到的性能問題。例如,您可能遇到由于兩個系統或組件之間的無法預料的交互而產生的性能問題,或者您可能使用原來存在的、未按希望的方式執行的代碼。 在此情況下,您需要追究性能問題的根源,以便您可以適當地解決該問題。本節討論一些將幫助您診斷性能問題以及調整應用程序以獲得最佳性能的工具和技術。
性能調整過程
對應用程序進行性能調整是一個迭代過程。該過程由一些重復執行直至應用程序滿足其性能目標的階段組成。
性能調整要求您完成下列過程:
1)建立基準。在您開始針對性能調整應用程序時,您必須具有與性能目標、目標和度量標準有關的定義良好的基準。這可能包括應用程序工作集大小、加載數據(例如,目錄)的時間、事務持續時間等等。
2)收集數據。 您將需要通過針對您已經定義的性能目標度量應用程序的性能,來對應用程序性能進行評價。性能目標應該體現特定的且可度量的度量標準,以使您可以在任何時刻 量化應用程序的性能。要使您可以收集性能數據,您可能必須對應用程序進行規范,以便可以發布和收集必需的性能數據。下一節將詳細討論您可以用來完成這一工 作的一些選項。
3)分析結果。 在收集應用程序的性能數據之后,您將能夠通過確定哪些應用程序功能要求最多的關注,來區分性能調整工作的輕重緩急。此外,您可以使用該數據來確定任何性能 瓶頸的位置。通常,您將只能夠通過收集更詳細的性能數據來確定瓶頸的確切位置:例如,通過使用應用程序規范。性能分析工具可能幫助您識別瓶頸。
4)調整應用程序。在已經識別瓶頸之后,您可能需要修改應用程序或其配置,以便嘗試解決問題。您應該致力于將更改降低至最低限度,以便可以確定更改對應用程序性能的影響。如果您同時進行多項更改,可能難以確定每項更改對應用程序的總體性能的影響。
5)測試和度量。 在更改應用程序或其配置之后,您應該再次測試它以確定更改具有的效果,并且使新的性能數據得以收集。性能工作通常要求進行體系結構或其他具有較高影響的更 改,因此徹底的測試是很關鍵的。您的應用程序測試計劃應該針對預料到的所有情況,在配置了適當硬件和軟件的客戶計算機上演習應用程序所實現的完整范圍的功 能。如果您的應用程序使用網絡資源,則應該加載這些資源,以便您可以獲得有關應用程序在此類環境中所具有的性能的準確度量。上述過程將使您可以通過針對特定目標度量應用程序的總體性能,來重點解決特定的性能問題。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |