成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET Framework性能的提高方法介紹

開(kāi)發(fā) 后端
.NET Framework性能的提高方法有很多種。我們?cè)谶@里就為大家總結(jié)了幾種比較常見(jiàn)的實(shí)用的提高.NET Framework性能的方法。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用泛型集合以避免值類型的裝箱和取消裝箱產(chǎn)生的系統(tǒng)開(kāi)銷。定義您自己的優(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 代碼頁(yè)編碼更快。

避免使用用于分析的架構(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 列。為了獲得更好的性能,請(qǐng)使用 Ticks 屬性值。

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

使元素和屬性名盡量保持簡(jiǎn)短,因?yàn)槊總€(gè)字符都必須經(jīng)過(guò)驗(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)考慮通過(guò)使用 BinaryReader 和 BinaryWriter 生成自定義二進(jìn)制序列化機(jī)制。

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

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

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

初始屏幕期間創(chuàng)建一個(gè)簡(jiǎn)單的 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性能。

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

異步處理大操作。

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

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

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

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

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

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

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2010-01-05 18:21:33

.NET Framew

2009-07-20 17:07:30

提高ASP.NET性能

2009-07-20 16:12:21

ASP.NET Fra

2009-12-15 11:28:34

.NET Framew

2009-09-18 09:16:06

.NET垃圾回收

2011-05-24 15:15:12

mysql性能

2010-01-05 13:56:37

2009-06-29 10:19:42

.NET Micro性能優(yōu)化

2010-01-06 17:12:26

.Net Framew

2010-01-05 17:39:10

.NET Framew

2009-07-20 16:04:37

ASP.NET fra

2010-05-07 08:59:50

ASP.NET

2011-10-14 10:37:54

ASP.NET

2010-01-06 18:47:21

.NET Compac

2010-01-05 16:20:46

.NET Framew

2011-07-07 09:03:12

ASP.NET

2009-08-06 11:12:17

提高GDI編程性能

2009-08-05 15:13:32

使用Cache提高AS

2010-01-05 10:17:35

.NET Framew

2010-01-06 18:33:56

.Net Framew
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一本岛道一二三不卡区 | 一级全黄少妇性色生活免费看 | 欧美国产精品一区二区三区 | 亚洲一区 | 欧美视频三区 | 亚洲一区在线日韩在线深爱 | 黄色在线免费看 | 一级毛片黄片 | 日韩欧美中文字幕在线观看 | 久久精品国产v日韩v亚洲 | 九一国产精品 | 亚洲最大的黄色网址 | 国产综合欧美 | 国产精品美女www爽爽爽 | 色婷婷综合久久久中字幕精品久久 | 日韩视频在线播放 | 男女视频91 | 国产精品久久久久久久久久软件 | www国产亚洲精品久久网站 | 久久亚洲一区 | 中文在线一区二区 | 亚洲欧美精品久久 | 精品国产欧美一区二区三区成人 | 日韩和的一区二区 | 粉嫩一区二区三区性色av | 欧美精选一区二区 | 亚洲成色777777在线观看影院 | 成人影视网址 | 秋霞电影院午夜伦 | 在线色网 | 91热爆在线观看 | 五月婷婷中文 | 日产久久| 9191成人精品久久 | 99国产精品久久久 | 一级片网站视频 | 麻豆av在线免费观看 | av中文字幕在线 | 国产高清在线观看 | 国产成人网 | 奇米久久久 |