免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

怎么提高.NETFramework的性能

這篇文章主要講解了“怎么提高.NET Framework的性能”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么提高.NET Framework的性能”吧!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),南丹企業(yè)網(wǎng)站建設(shè),南丹品牌網(wǎng)站建設(shè),網(wǎng)站定制,南丹網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,南丹網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

開發(fā)人員在進(jìn)行.NET Framework開發(fā)代碼的時(shí)候,通常都會(huì)想通過各種方法來進(jìn)行性能的提高。我們今天就為大家介紹幾種.NET Framework性能的提高方法,希望能對大家有所幫助,提高大家的編程效率。

使用 Windows 窗體和圖形節(jié)省內(nèi)存

對提供 BeginUpdate 和 EndUpdate 方法的控件使用這兩種方法,提供這兩種方法的控件包括 ComboBox、ListBox、ListView、ToolStripComboBox 和 TreeView。

重新定位控件時(shí),使用 SuspendLayout 和 ResumeLayout 方法提高.NET Framework性能。

在后臺(tái)加載其他窗體,使用數(shù)據(jù)來填充控件,然后再使用 Show 方法。

將事件處理代碼限制為僅執(zhí)行重要任務(wù),以便掛起過程可以繼續(xù)。

使用脫屏位圖。有關(guān)示例,請參見如何:繪制后臺(tái)圖像。

重寫控件上的 OnKeyDown、OnKeyPress 和 OnKeyUp 方法,而不是添加按鍵事件處理程序。

使用數(shù)據(jù)和字符串節(jié)省內(nèi)存

在 for 循環(huán)中使用整數(shù)變量(Int32 或 Int64),而不使用對象變量。

避免使用枚舉的 ToString 方法,因?yàn)樗鼤?huì)搜索元數(shù)據(jù)表,從而影響.NET Framework性能。

避免 OutOfMemoryException 錯(cuò)誤。如果沒有足夠的內(nèi)存分配給內(nèi)部使用或分配給新對象實(shí)例,公共語言運(yùn)行庫可能會(huì)引發(fā)此異常。要避免此異常,應(yīng)避免編寫占用 64K 或更多內(nèi)存的大方法。

移除 System.SR.dll,它包含異常對話框的錯(cuò)誤信息字符串。部署應(yīng)用程序時(shí)可以不使用此文件,從而節(jié)省內(nèi)存。如果存在 System.SR.dll,則 .NET Compact Framework 將動(dòng)態(tài)加載 System.SR.dll 中包含的錯(cuò)誤字符串。

如果設(shè)備中不存在此 .dll 文件,則所有異常都包含消息“無法加載資源程序集”。不過,在開發(fā)期間將 System.SR.dll 引用添加到 Microsoft Visual Studio 2005 項(xiàng)目中總是有用的,因?yàn)檫@樣您將看到有意義的異常。

字符串是不可變的,因此,每次修改該字符串時(shí)都會(huì)創(chuàng)建新的 String 對象。構(gòu)造需經(jīng)常修改的字符串時(shí),請考慮使用 StringBuilder提高.NET Framework性能。

如果您知道用于 DateTime 序列化的確切格式,請為 DateTime 使用 ParseExact 方法。否則,DateTime 分析器將按順序嘗試應(yīng)用多個(gè)特定于區(qū)域性的格式。

限制打開 SqlCeCommand 對象的數(shù)量,并在完成后釋放它們。

與本機(jī)代碼進(jìn)行交互時(shí)節(jié)省內(nèi)存

在平臺(tái)調(diào)用操作中,使用可直接復(fù)制到本機(jī)結(jié)構(gòu)中的類型,這樣的類型在托管和非托管內(nèi)存中有一種通用表示形式,如 Int32 或 IntPtr。對于大于 32 位的可直接復(fù)制到本機(jī)結(jié)構(gòu)中的值類型來說,通過引用傳遞比通過值傳遞更快。有關(guān)可直接復(fù)制到本機(jī)結(jié)構(gòu)中的類型的更多信息,請參見 .NET Compact Framework 中可直接復(fù)制到本機(jī)結(jié)構(gòu)中的類型。

為函數(shù)簽名中的參數(shù)使用 InAttribute 和 OutAttribute 屬性可以減少不必要的封送處理。

使用 Marshal 類中的方法手動(dòng)在 IntPtr 和托管對象之間轉(zhuǎn)換,如 PtrToStructure、PtrToStringBSTR、GetObjectForNativeVariant 和 GetObjectForIUnknown。

使用 Prelink 和 PrelinkAll 方法來引發(fā)支持本機(jī)到托管調(diào)用的存根 (stub) 的 JIT 編譯。

如果期望您的本機(jī) COM 對象通常情況下返回 S_FALSE,或其他非 S_OK HRESULT 值,則應(yīng)將 PreserveSig 字段設(shè)置為 true,并使托管簽名與本機(jī)簽名匹配。這就避免了運(yùn)行庫將 HRESULT 值轉(zhuǎn)換為 COM 調(diào)用上的異常時(shí)必需的 try/catch 塊的系統(tǒng)開銷。

盡量使用一個(gè)平臺(tái)調(diào)用多做工作,盡量少用多個(gè)調(diào)用。

在集合中節(jié)省內(nèi)存

如果集合基于數(shù)組,請使用索引器。

一旦有機(jī)會(huì),就指定集合的大小,因?yàn)閯?dòng)態(tài)調(diào)整大小可以大大增加額外的存儲(chǔ)。

使用泛型集合以避免值類型的裝箱和取消裝箱產(chǎn)生的系統(tǒng)開銷。定義您自己的優(yōu)化集合可實(shí)現(xiàn)***.NET Framework性能。

在 XML 中節(jié)省內(nèi)存

使用 XmlTextReader 和 XmlTextWriter 代替 XmlDocument(因?yàn)樗加玫膬?nèi)存較多)。

指定 XmlReaderSettings 和 XmlWriterSettings 的設(shè)置以改善性能。如果 IgnoreWhitespace 和 IgnoreComments 兩個(gè)屬性值適用,它們可以顯著改善性能。

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

避免使用用于分析的架構(gòu),因?yàn)檫@種架構(gòu)需要更多的驗(yàn)證工作。

當(dāng)從 XML 源填充 DataSet 窗體時(shí),應(yīng)將列映射為屬性并使用類型化 DataSet。

填充 DataSet 時(shí),應(yīng)避免填充以下各項(xiàng):

架構(gòu)推理。

嵌套表。

多個(gè) DateTime 列。為了獲得更好的性能,請使用 Ticks 屬性值。

使用 XML 反序列化時(shí),遵循以下準(zhǔn)則可改善.NET Framework性能:

使元素和屬性名盡量保持簡短,因?yàn)槊總€(gè)字符都必須經(jīng)過驗(yàn)證。

基于屬性數(shù)據(jù)的 XML 比基于元素?cái)?shù)據(jù)的 XML 要快。

如果適用,使用 System.Xml.XmlNodeReader.Skip 方法。

如果性能很重要,應(yīng)考慮二進(jìn)制序列化。

為 XML 序列化的每一種類型分別使用一個(gè) XmlSerializer 實(shí)例,以減少用于搜索元數(shù)據(jù)的時(shí)間。

由于序列化大量 XML 可能會(huì)耗盡內(nèi)存,應(yīng)考慮通過使用 BinaryReader 和 BinaryWriter 生成自定義二進(jìn)制序列化機(jī)制。

使用 Web 服務(wù)時(shí)節(jié)省內(nèi)存

讀取和編寫 DataSet 時(shí),應(yīng)使用 DiffGram。有關(guān)更多信息,請參見 DiffGram。

以 XML 格式將遠(yuǎn)程 DataSet 及其架構(gòu)保存到設(shè)備。

初始屏幕期間創(chuàng)建一個(gè)簡單的 Web 服務(wù)方法調(diào)用,因?yàn)?**個(gè)調(diào)用比后面的調(diào)用要慢。

小心處理網(wǎng)絡(luò)和數(shù)據(jù)錯(cuò)誤。

某些情況下,可以手動(dòng)將 DataSet 序列化為 XML 字符串,然后執(zhí)行一個(gè) Web 服務(wù)調(diào)用,這樣可以提高.NET Framework性能。

在高級編程中節(jié)省內(nèi)存

異步處理大操作。

避免虛擬調(diào)用。.NET Compact Framework 運(yùn)行庫虛擬調(diào)用比靜態(tài)調(diào)用或?qū)嵗{(diào)用大約慢 30%。由于資源受約束,.NET Compact Framework 不使用 vtable,因此必須通過轉(zhuǎn)換類和接口層次結(jié)構(gòu)來調(diào)用方法,但這是一種代價(jià)很高的操作。.NET Compact Framework 維護(hù)已解析的虛擬調(diào)用的緩存,因此在大多數(shù)情況下,無須重新解釋調(diào)用。

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

定義值類型時(shí),重寫 GetHashCode 和 Equals 方法。如果未重寫它們,則運(yùn)行庫會(huì)在基 ValueType 類中使用這些方法的普通版本。

謹(jǐn)慎使用映射。出于調(diào)研目的將映射與非實(shí)例化類一起使用會(huì)影響應(yīng)用程序中的實(shí)例化對象的.NET Framework性能。

確保 RESX 文件中的托管資源具有完全限定名,并且這些資源準(zhǔn)確無誤。它們必須具有正確的版本和 PublicKeyToken 字段。為未正確指定的類型查找最合適的替代類型會(huì)影響性能。

請注意,在某些情況下,直接從文件讀取應(yīng)用程序數(shù)據(jù)就足夠了,這比使用 ResourceManager 效率更高。ResourceManager 可以在定位您的二進(jìn)制資源之前在文件系統(tǒng)中探測多個(gè)位置來查找最匹配的附屬程序集。為作業(yè)使用適當(dāng)?shù)墓ぞ咛岣?NET Framework性能。

感謝各位的閱讀,以上就是“怎么提高.NET Framework的性能”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么提高.NET Framework的性能這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前名稱:怎么提高.NETFramework的性能
文章源于:http://m.newbst.com/article44/gpjche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航全網(wǎng)營銷推廣網(wǎng)站收錄用戶體驗(yàn)品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)