.NET 4.0加入垃圾回收滞后时间模式SustainedLowLatency

当大家把目光聚焦在即将到来的.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

This entry was posted in Achitecture. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s