Ich habe das Gefühl, dass ich ziemlich viele Daten in meine ASP.NET-Sitzung gebe, aber ich habe keine Ahnung, wie viel und ob ich besorgt sein sollte. Ich habe eine similar question gefunden, aber das beruht auf der Serialisierung von Objekten und der Überprüfung ihrer serialisierten Größe. In meinem Fall befinden sich die meisten Daten in der Sitzung in Objekten einer anderen Bibliothek, deren Klassen nicht als "Serialisierbar" markiert sind. (Ich weiß, dass dies mich einschränkt, den InProc-Sitzungsstatusanbieter zu verwenden, aber das ist ein anderes Problem). Hat jemand eine Idee, wie man den Objektgraphen durchläuft und seine Größe ermittelt?Wie wird die Größe der ASP.NET-Sitzung ermittelt, wenn nicht serialisierbare Objekte darin enthalten sind?
Hinzugefügt: OK, eine Möglichkeit wäre eine manuelle Traversierung des Objektdiagramms und die Verwendung der Marshal.SizeOf() -Methode. Aber das ist eine Menge Schreiben, um das zu erreichen. Gibt es vielleicht einen einfacheren Weg, den gleichen Effekt zu erzielen? Ich bin nicht für Byte Präzision Ziel, ich bin interessiert in der Größenordnung (Kilobyte, Megabyte zig Megabyte ...)
Vorsichtig lesen! Irgendwo dort, in Kleingedruckten geschrieben, gibt es ein paar Worte über "nicht serialisierbare Objekte". Ich kann es nicht in einen Byte-Stream konvertieren, geschweige denn in einen DB! –
Und was Speicheroptimierungen betrifft - der Code ist schon so minimalistisch, wie ich es ohne "tricky, clevere Optimierungstricks" machen könnte. Ich könnte es vielleicht noch mehr quetschen, aber das würde eine große Anstrengung bedeuten. Ich möchte herausfinden, ob es das wert ist. –
Hallo Vilx, kannst du mir mehr Informationen über nicht serialisierbare Objekte geben? –