获取会话数据成本与状态服务器 asp.net



我正在为我的一个网站使用 ASP.NET 会话状态服务器。我将一个用户对象放在会话中,因为它被大量使用。

请考虑以下代码片段:

DoSomething(SessionUser.Me.UserID)
DoSomeMore(SessionUser.Me.UserName)

SessionUser.Me 是一个静态属性,它只执行以下操作:

return (SessionUser)Session["currentuser"];

现在因为我访问 SessionUser.Me 2 次(DoSomething 和 DoSomeMore),.NET 是否足够聪明,不会对状态服务器进行 2 次往返并反序列化 2 次?

换句话说,如果我只是这样做,它在性能上是等效的:

var user = SessionUser.Me;
DoSomething(user.UserID)
DoSomeMore(user.UserName)

会话

在请求管道的早期从状态服务器反序列化(请参阅 HttpApplication.AcquireRequestState,并在页面执行完成时写回状态服务器(请参阅 HttpApplication.ReleaseRequestState)。

因此,不应因重复访问而影响性能。

最新更新