2

ASP.NET セッションにかなり多くのデータを入れているような気がしますが、どれくらいの量を気にする必要があるのか​​ わかりません。同様の質問が見つかりましたが、それはオブジェクトのシリアル化とシリアル化されたサイズの確認に依存しています。私の場合、セッション内のデータの大部分は、「シリアル化可能」とマークされたクラスを持たない別のライブラリのオブジェクトにあります。(これにより、InProc セッション状態プロバイダーの使用が制限されることはわかっていますが、それは別の問題です)。オブジェクト グラフをトラバースしてそのサイズを調べる方法を知っている人はいますか?

追加: OK、1 つの方法は、オブジェクト グラフを手動で走査し、Marshal.SizeOf() メソッドを使用することです。しかし、それを機能させるには多くの書き込みがあります。同じ効果を達成するためのより簡単な方法はおそらくありますか?私はバイト精度を目指しているのではなく、大きさのオーダーに興味があります(キロバイト、メガバイト、数十メガバイト...)

4

3 に答える 3

1

ヒープダンプを生成して、そこからセッションのサイズを見つけることはできませんか? Java ランドでは、ヒープをダンプしてmatで開き、セッション オブジェクトを見つけて、サブグラフのサイズを調べることができます。

于 2009-04-15T14:50:10.760 に答える
-1

おそらく、セッション状態情報をデータベースに保存してサイズを確認できますが、オブジェクト グラフを表示してトラバースできるツールがあるかどうかはわかりません。

可能であれば、設計をもう一度チェックして、セッション内の情報を最小限に抑えることができるかどうかを確認してください。

于 2009-04-15T13:51:25.567 に答える