點擊查看:2015年軟考《系統(tǒng)架構(gòu)設(shè)計師》備考資料匯總
優(yōu)化顯示速度
根據(jù)您用于顯示用戶界面控件和應(yīng)用程序窗體的技術(shù),您可以用多種不同的方式來優(yōu)化應(yīng)用程序的顯示速度。當您的應(yīng)用程序啟動時,您應(yīng)該考慮盡可能地顯示簡單的用戶界面。這將減少啟動時間,并且向用戶呈現(xiàn)整潔且易于使用的用戶界面。而且,您應(yīng)該努力避免引用類以 及在啟動時加載任何不會立刻需要的數(shù)據(jù)。這將減少應(yīng)用程序和 .NET Framework 初始化時間,并且提高應(yīng)用程序的顯示速度。當您需要顯示對話框或窗體時,您應(yīng)該在它們做好顯示準備之前使其保持隱藏狀態(tài),以便減少需要的繪制工作量。這將有助于確保窗體僅在初始化之后顯示。如果您的應(yīng)用程序具有的控件含有覆蓋整個客戶端表面區(qū)域的子控件,則您應(yīng)該考慮將控件背景樣式設(shè)置為不透明。這可以避免在發(fā)生每個繪制事件時重繪控件的背景。您可以通過使用 SetStyle 方法來設(shè)置控件的樣式。使用 ControlsStyles.Opaque 枚舉可以指定不透明控件樣式。您應(yīng)該避免任何不必要的控件重新繪制操作。一種方法是在設(shè)置控件的屬性時隱藏控件。在 OnPaint 事件中具有復(fù)雜繪圖代碼的應(yīng)用程序能夠只重繪窗體的無效區(qū)域,而不是繪制整個窗體。OnPaint 事件的 PaintEventArgs 參數(shù)包含一個 ClipRect 結(jié)構(gòu),它指示窗口的哪個部分無效。這可以減少用戶等待查看完整顯示的時間。使用標準的繪圖優(yōu)化,例如,剪輯、雙緩沖和 ClipRectangle。這還將通過防止對不可見或要求重繪的顯示部分執(zhí)行不必要的繪制操作,從而有助于改善智能客戶端應(yīng)用程序的顯示性能。
如果您的顯示包含動畫或者經(jīng)常更改某個顯示元素,則您應(yīng)該使用雙緩沖或多緩沖,在繪制當前圖像的過程中準備下一個圖像。System.Windows.Forms 命名空間中的 ControlStyles 枚舉適用于許多控件,并且 DoubleBuffer 成員可以幫助防止閃爍。啟用 DoubleBuffer 樣式將使您的控件繪制在離屏緩沖中完成,然后同時繪制到屏幕上。盡管這有助于防止閃爍,但它的確為分配的緩沖區(qū)使用了更多內(nèi)存。
使用性能日志和警報
性能日志和警報是作為 Windows 操作系統(tǒng)的一部分發(fā)行的一種管理性能監(jiān)控工具。它依靠由各種 Windows 組件、子系統(tǒng)和應(yīng)用程序發(fā)布的性能計數(shù)器,使您可以跟蹤資源使用情況以及針對時間以圖形方式繪制它們。您可以使用 Performance Logs and Alerts 來監(jiān)控標準的性能計數(shù)器(例如,內(nèi)存使用情況或處理器使用情況),或者您可以定義您自己的自定義計數(shù)器來監(jiān)控應(yīng)用程序特定的活動。.NET CLR 提供了許多有用的性能計數(shù)器,它們使您可以洞察應(yīng)用程序性能的好壞。關(guān)系比較大的一些性能對象是:
1).NET CLR 內(nèi)存。提供有關(guān)托管 .NET 應(yīng)用程序內(nèi)存使用情況的數(shù)據(jù),包括應(yīng)用程序正在使用的內(nèi)存數(shù)量以及對未使用的對象進行垃圾回收所花費的時間。
2).NET CLR 加載。提供有關(guān)應(yīng)用程序正在使用的類和應(yīng)用程序域的數(shù)量的數(shù)據(jù),并且提供有關(guān)它們的加載和卸載速率的數(shù)據(jù)。
3).NET CLR 鎖和線程。提供與應(yīng)用程序內(nèi)使用的線程有關(guān)的性能數(shù)據(jù),包括線程個數(shù)以及試圖同時對受保護的資源進行訪問的線程之間的爭用率。
4).NET CLR 網(wǎng)絡(luò)。提供與通過網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù)有關(guān)的性能計數(shù)器,包括每秒發(fā)送和接收的字節(jié)數(shù)以及活動連接的個數(shù)。
5).NET CLR 異常。提供有關(guān)應(yīng)用程序所引發(fā)和捕獲的異常個數(shù)的報告。
您的應(yīng)用程序還可以提供您可以通過使用性能日志和警報輕松監(jiān)控的、應(yīng)用程序特定的性能計數(shù)器。您可以像以下示例所顯示的那樣,定義自定義性能計數(shù)器:
[C#]
PerformanceCounter counter = new PerformanceCounter( "Category","CounterName", false );
[Visual Basic .NET]
Dim counter As New PerformanceCounter("Category", "CounterName", False)
在創(chuàng)建性能計數(shù)器對象之后,您可以為您的自定義性能計數(shù)器指定類別,并將所有相關(guān)計數(shù)器保存在一起。PerformanceCounter 類在 System.Diagnostics 命名空間中定義,該命名空間中還定義了其他一些可用于讀取和定義性能計數(shù)器和類別的類。
性能工具
您可以使用許多工具來幫助您收集和分析應(yīng)用程序的性能數(shù)據(jù)。本節(jié)中介紹的每種工具都具有不同的功能,您可以使用這些功能來度量、分析和查找應(yīng)用程序中的性能瓶頸。
注除了這里介紹的工具以外,您還可以使用其他一些選項和第三方工具。
相關(guān)推薦:
2015軟考《系統(tǒng)分析師》練習(xí)題及答案匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |