2011-02-02 4 views
2

Asp.NetサイトでSessionState変数で使用しているメモリリソースの数は分かりますか?私はそれを解決するためにアプリケーションを変更したくありません。私はいくつかのツールやIISを使ってこれを知ることができれば素晴らしいだろう。私はsessionState変数でどのくらいのメモリリソースを使用しているか知る方法

私はsessionStateをInProcからSqlに移行しようとしていますが、私は最初にどれだけ大きな問題があるかを知る必要があります。

ありがとうございました。

答えて

1

この回答によれば、hereには、セッションで使用されているメモリの量を知る方法がありません。

2 *名前の中の文字数
+ 8バイト:各セッション変数の

:しかし、あなたが推測を行うことができます(また、私はリンクされている質問やhereをマークSchuppからの回答を参照してください)オーバーヘッド
+データサイズ

文字列は、Unicode(2バイト/文字)として内部的に格納されます。

+0

はい、私はアプリケーションにコードを書く場合にのみこれを行うことができます。サイト外でこれを行う方法があれば? –

+0

あなたが話している記事では、私は答えを見つけたと思う:あなたは、SQL Serverにバッキングストアを変更し、SessionItemShortまたはSessionItemLongのサイズを見て、データのシリアル化されたサイズを知ることができます。おそらく正確ではないが、近いべきである。 –

+0

@Ariel Larraburu:はい、これは可能です。私はちょうどその質問からすべての答えを引用したくなかった;) –

0

あなたはそれを試すことができます。

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

long bytes = m.Length; // real size 
+0

コードhighligterを有効にするコードの各行の前に4つのスペースを追加する – gor

+0

このコードを 'EndRequest'で実行する – gor

+0

これを行うとセッションサイズを得ることができるサイト上のすべてのセッション変数のサイズを知る。 –

0

自分を書き、セッション状態のデータ量を確認することができます。これで難しいです...詳細here

+0

それはかなり興味深いようですが、サイトに適用するのは難しいです。 –