.NET 4.0加入垃圾回收滯后時間模式SustainedLowLatency

fmms 12年前發布 | 6K 次閱讀 .NET

作者 Jonathan Allen 譯者 曹如進

當大家把目光聚焦在即將到來的 .NET 4.5 的同時,微軟繼續對 .NET 4.0 進行了一番小的增強。新版本.NET 4.0.3包含了垃圾回收、Windows Workflow 以及其他方面的改動。由于新版本默認不處于啟用狀態,因此如果想要使用其中的新特性,開發人員需要為項目中的目標 Framework 選項明確指定“.NET Framework 4.0.3”或“.NET Framework 4.0.3 Client Profile”。

垃圾回收

.NET 允許開發人員改變垃圾回收器的滯后時間模式。對于高吞吐的應用程序,滯后時間模式通常會設置為 Batch 模式,以容忍完整垃圾回收周期中產生的短暫中斷。網站是使用這種模式的一個例子,其中 GC 導致的中斷沒有正常網絡延遲明顯。而對于具有用戶界面的應用程序,一般會設置為 Interactive 模式。這種模式相比 Batch 模式要慢一些,但它在運行過程中不會降低用戶界面的響應能力。

還有一些應用程序需要高吞吐和低延遲的組合。在 .NET 2.0 SP 1 中,這些應用程序可以在短暫的時間周期內切換到 LowLatency 模式。雖然該模式幾乎消除了 GC 中斷,但是除非不斷手工去觸發一個完整的 GC 周期,否則它只能在短暫的時間里不用擔心內存不足的異常。

新的 SustainedLowLatency 模式在 LowLatency 和 Interactive 模式之間進行了折衷。它在高度調優避免 GC 中斷的同時,可以阻止完整垃圾回收的發生。這樣的做法絕對是用必要的。新的模式行為使得應用程序可以長時間安全停留在當前模式,但盡管如此,仍需告誡開發人員避免在低滯后時間模式中進行不必要的內存分配。

Windows Workflow Foundation

Windows Workflow Foundation 的核心引擎現在可以運行在部分信任的環境中。除 SqlWorkflowInstanceStore 和 Visual Basic 表達式外,大部分特性都受支持。而前者只能在完全信任的環境中才能繼續使用。

可移植類庫

可移植類庫現在包含了 System.Xml.Linq 和 System.ComponentModel.DataAnnotations。

SQL Server -關聯連接 ID(Correlated Connection ID)

微軟 SQL Server 2012 添加了客戶端和服務器間的關聯連接 ID 功能。借助這次更新,SqlClient 將發送連接 ID 信息在服務端進行注冊。此外,SqlClient 中還添加了以下功能以取回客戶端可用的連接 ID:

  • SqlConnection 提供 ConnectionId 屬性
  • SqlException 提供 ConnectionId 屬性
  • SqlException.ToString 結果將包含連接 ID

查看英文原文:http://www.infoq.com/news/2012/03/Net-403

來自: InfoQ

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!