Ich speichere derzeit viele verschiedene Arten von Objekten in ASP.NET HttpRuntime.Cache und ich frage mich, ob es eine Möglichkeit gibt, herauszufinden, wie groß jedes Objekt ist?Wie kann ich die Größe eines Objekts im HttpRuntime.Cache bekommen?
Antwort
Schauen Sie sich diese Fragen helfen:
Getting the size of a field in bytes with C#
Find out the size of a .net object
Insbesondere sucht Jon Skeet Antwort in diesen Fragen. Sie werden Ihnen sagen, warum die Nummer nicht genau sein wird.
Wie für eine Schätzung, gibt es keine Möglichkeit, dies zu tun, außer wenn bestimmte Kriterien für Ihr Objekt erfüllt sind.
Wenn Sie zum Beispiel viele Objekte im Cache haben und Referenzen auf einige allgemeine Objektinstanzen freigeben, wird das Serialisieren eines dieser Objekte im Cache eine Kopie dieser gemeinsamen Objekte serialisieren und die Ergebnisse aufblasen.
Eine Sache, die Sie tun können, ist das Objekt in eine Datei auf der Festplatte serialisieren. Das sollte dir eine Idee geben.
Diese cache manager von ASP-Allianz könnte auch
Ich versuchte das ASP-Alliance-Tool und ich bekomme "Daten konnte nicht zu Xml serialisiert werden" für die meisten Objekte, die mich interessieren ... Hat jemand Beispielcode, um beliebige Sachen aus 'HttpRuntime.Cache' zu nehmen und serialisieren es? –
Danke - es klingt, als gäbe es keinen vollkommen genauen Weg, aber es könnte gut genug sein für das, was ich versuche zu tun. –
@ JonTackabury, mit welcher Methode sind Sie gegangen? –