私はASP.NETセッションでデータをかなり入れているような気がしますが、どれくらいのことを心配する必要はありません。 similar questionが見つかりましたが、オブジェクトのシリアル化とシリアル化されたサイズの確認が必要です。私の場合、セッションのデータの大部分は、「シリアライズ可能」としてマークされたクラスを持たない別のライブラリのオブジェクトにあります。 (これはInProcセッションステートプロバイダの使用を制限していることを知っていますが、それは別の問題です)。誰かがオブジェクトグラフをどのように横断してそのサイズを調べるかについてのアイディアを持っていますか?ASP.NETセッションのサイズを調べるには、シリアル化されていないオブジェクトがある場合はどうすればよいですか?
追加: OK、片方向は、オブジェクトグラフの手動トラバーサルとMarshal.SizeOf()メソッドの使用方法です。しかしそれはそれを働かせるための多くの執筆です。同じ効果を達成するための簡単な方法はありますか?私はバイト精度を目指しているわけではありませんが、大きさの順番(キロバイト、メガバイト、数十メガバイト)に興味があります。
注意深くお読みください!小文字で書かれたどこかには、「直列化できないオブジェクト」に関する言葉が2つあります。私はそれをバイトストリームに変換することはできず、ずっとDBに入れません! –
そして、メモリの最適化に関しては、 "トリッキーで巧妙な最適化の仕方"に頼らずに、コードを最小限に抑えています。私はそれをもっと絞ることができるかもしれませんが、それは大きな努力を要するでしょう。私はそれがそれの価値があるかどうかを知りたい。 –
こんにちはVilx、非直列化可能なオブジェクトに関する詳細を教えてください。 –