我可以知道我在Asp.Net站点中使用SessionState变量的内存资源有多少?我不想对应用程序进行更改以解决它。如果我能使用某种工具或IIS了解这一点,那将会很棒。
我正在计划将sessionState从InProc移动到Sql,但我需要知道我的问题有多大。
感谢。
答案 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。