1

Web サイトの 1 つで 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)

?

4

1 に答える 1

1

セッションは、要求パイプラインの早い段階で状態サーバーから逆シリアル化され ( HttpApplication.AcquireRequestStateを参照) 、ページの実行が完了すると状態サーバーに書き戻されます ( HttpApplication.ReleaseRequestStateを参照)。

したがって、繰り返しアクセスしてもパフォーマンスが低下することはありません。

于 2012-12-03T17:23:26.353 に答える