天天看點

提高精簡架構集程式的性能

以下程式設計做法可以節省記憶體和改善裝置應用程式的性能。

使用 Windows 窗體和圖形節省記憶體

·             将事件處理代碼限制為僅執行重要任務,以便挂起過程可以繼續。

使用資料和字元串節省記憶體

·             移除 System.SR.dll,它包含異常對話框的錯誤資訊字元串。部署應用程式時可以不使用此檔案,進而節省記憶體。如果存在 System.SR.dll,則 .NET Compact Framework 将動态加載 System.SR.dll 中包含的錯誤字元串。

如果裝置中不存在此 .dll 檔案,則所有異常都包含消息“無法加載資源程式集”。不過,在開發期間将 System.SR.dll 引用添加到 Microsoft Visual Studio 2005 項目中總是有用的,因為這樣您将看到有意義的異常。

與本機代碼進行互動時節省記憶體

·             盡量使用一個平台調用多做工作,盡量少用多個調用。

在集合中節省記憶體

·             如果集合基于數組,請使用索引器。

·             一旦有機會,就指定集合的大小,因為動态調整大小可以大大增加額外的存儲。

·             使用泛型集合以避免值類型的裝箱和取消裝箱産生的系統開銷。定義您自己的優化集合可實作最佳性能。

在 XML 中節省記憶體

·             使用 UTF-8、ASCII 和 UTF-16 字元編碼,它們比 ANSI 和 Windows 代碼頁編碼更快。

·             避免使用用于分析的架構,因為這種架構需要更多的驗證工作。

·             填充 DataSet 時,應避免填充以下各項:

o                                    架構推理。

o                                    嵌套表。

·             使用 XML 反序列化時,遵循以下準則可改善性能:

o                                    使元素和屬性名盡量保持簡短,因為每個字元都必須經過驗證。

o                                    基于屬性資料的 XML 比基于元素資料的 XML 要快。

o                                    如果性能很重要,應考慮二進制序列化。

使用 Web 服務時節省記憶體

·             以 XML 格式将遠端 DataSet 及其架構儲存到裝置。

·             初始螢幕期間建立一個簡單的 Web 服務方法調用,因為第一個調用比後面的調用要慢。

·             小心處理網絡和資料錯誤。

·             某些情況下,可以手動将 DataSet 序列化為 XML 字元串,然後執行一個 Web 服務調用,這樣可以提高性能。

在進階程式設計中節省記憶體

·             異步處理大操作。

·             避免虛拟調用。.NET Compact Framework 運作庫虛拟調用比靜态調用或執行個體調用大約慢 30%。由于資源受限制,.NET Compact Framework 不使用 vtable,是以必須通過轉換類和接口層次結構來調用方法,但這是一種代價很高的操作。.NET Compact Framework 維護已解析的虛拟調用的緩存,是以在大多數情況下,無須重新解釋調用。

·             盡可能使用字段而不使用屬性。

·             謹慎使用映射。出于調研目的将映射與非執行個體化類一起使用會影響應用程式中的執行個體化對象的性能。

·             確定 RESX 檔案中的托管資源具有完全限定名,并且這些資源準确無誤。它們必須具有正确的版本和 PublicKeyToken 字段。為未正确指定的類型查找最合适的替代類型會影響性能。