.NET 4.0加入垃圾回收滯后時間模式SustainedLowLatency
作者 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