65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 面试题:提及 LeaseTime、SponsorshipTime、RenewonCallTime 和 LeaseManagerPollTime

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (5投票s)

2012 年 5 月 8 日

CPOL

2分钟阅读

viewsIcon

30975

这对于实际应用来说是一个非常重要的问题。

这对于实际应用来说是一个非常重要的问题。对 Remoting 项目有特定要求的公司会期望能够回答这个问题。

在正常的 .NET 环境中,对象垃圾回收器管理生命周期。然而,在 Remoting 环境中,远程客户端可以访问超出垃圾回收器控制范围的对象。垃圾回收器的边界限制在运行框架的单个 PC 上;任何跨物理 PC 的远程客户端都超出 GC(垃圾回收器)的控制范围。

垃圾回收器的这种限制导致了一种新的处理 Remoting 对象生命周期的方式,即使用“LeaseTime”的概念。每个服务器端对象默认分配一个“LeaseTime”,为五分钟。这个租期时间会以一定的间隔减少。 此外,每次方法调用都会分配默认的二分钟时间。我说方法调用是指从客户端发起的每一个调用。这被称为“RenewalOnCallTime”。

让我们把所有内容放在一个公式中,使概念更清晰。

总的 Remoting 对象生命周期 = LeaseTime + (方法调用次数) X (RenewalTime)。

那么默认的远程对象生命周期 = 5 + (1) X 2 = 10 分钟(所有单位都是分钟)

当总对象生命周期减少到零时,它会查询赞助者,询问是否应该销毁该对象。赞助者是一个对象,它决定是否应该更新对象生命周期。因此,它会查询与该对象注册的任何赞助者,如果没有找到任何赞助者,则该对象将被标记为垃圾回收。垃圾回收器将完全控制对象的生命周期。如果我们无法预见对象需要多长时间,请指定“Sponsorship Timeout”值。Sponsorship Timeout 是赞助者调用超时的时间单位。

“LeaseManagerPollTime”定义了赞助者返回租期扩展的时间。

观看以下关于 C# .NET 面试中询问的垃圾回收器、Gen 0、1 和 2 的视频:视频

了解更多关于 .NET 面试题的信息。

更多关于作者博客中与 .NET 面试题相关的内容,请点击访问。

© . All rights reserved.