2011年7月12日

C#計算所有Session的記憶體大小

如果我們想知道目前網站上每個Session的大小,可把Session序列化再進行計算 ,這邊的Session是開一個IE連線裡的Session範圍
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

namespace WebTyr
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

Session["a"] = "aaa";
Session["b"] = "bb";

long totalBytes=0;
var formatter = new BinaryFormatter();
for (int i = 0; i < Session.Count; i++) //尋訪所有seesion
{
using (var stream = new MemoryStream())
{ formatter.Serialize(stream, Session[i]); // 序列化Session
stream.Flush();
totalBytes += stream.Length;

Response.Write("<br>" + totalBytes.ToString()); //印出每一session大小
totalBytes = 0;
}
}

}

沒有留言:

張貼留言