如何知道我正在使用sessionState变量的内存资源

时间:2011-02-02 20:19:13

标签: asp.net memory resources session-state

我可以知道我在Asp.Net站点中使用SessionState变量的内存资源有多少?我不想对应用程序进行更改以解决它。如果我能使用某种工具或IIS了解这一点,那将会很棒。

我正在计划将sessionState从InProc移动到Sql,但我需要知道我的问题有多大。

感谢。

3 个答案:

答案 0 :(得分:1)

根据这个答案here,无法知道会话正在使用多少内存。但你可以猜一下(参见我所链接的问题以及Mark Schupp的答案here):

  

对于每个会话变量:

    2 *名称中的字符数量     + 8字节开销
    +数据尺寸

  请记住,字符串在内部存储为unicode(2字节/字符)。

答案 1 :(得分:0)

你可以尝试一下:

BinaryFormatter bf = new BinaryFormatter();
MemoryStream m = new MemoryStream();
foreach(var obj in Session) {
  bf.Serialize(m, obj);
}

long bytes = m.Length; // real size

答案 2 :(得分:0)

您可以编写自己的,并检查会话状态中的数据量。通过它很难......详情here