Im Wesentlichen habe ich eine sehr große Liste, die wiederum relativ große Wörterbücher enthält.
Im Grunde habe ich also eine sehr große Speichersammlung.
Ich dann serialisieren diese Sammlung manuell zu XML, und senden Sie es über http. unnötig zu sagen, die XML ist zu groß, manchmal so groß ich eine OutOfMemory-Ausnahme erhalten, bevor sogar versuchen, es zu senden.
Wie würde ich in .NET vorgehen, um die potenzielle Speichernutzung zu berechnen? In diesem Fall muss ich zum Beispiel die XML-Datei in Stücke zerlegen, indem ich nur kleine Teile der Sammlung auf einmal verarbeite.
Wie berechne ich effizient die Größe der einzelnen "Chunks" im Handumdrehen? Ich möchte keine willkürliche Zahl festlegen, wie z. B. "100 Artikel gleichzeitig verarbeiten", Ich möchte ungefähr wissen, wie groß die einzelnen Stücke von Fall zu Fall sein sollten.
Prost
UPDATE
Obwohl @Jacob die beste Lösung für dieses spezielle Problem geliefert hat, ist die konzeptionelle Struktur der App selbst mangelhaft.
Die Lösung besteht in der Tat darin, einen Bruchteil Ihrer Nachricht auszuführen, um zu berechnen, wie groß die Nachricht möglicherweise sein wird, wenn Sie mit einer Sammlung arbeiten.
Sie senden dann jede Einheit in akzeptabler Größe, eine nach der anderen.
Aber das ist nur ein Hacken. Die eigentliche Lösung besteht darin, entweder einen Weg zu finden, keine großen Nachrichten zu übermitteln, oder ein völlig anderes Protokoll zu verwenden.
Es gibt eine interessanter Beitrag zu diesem Thema hier wenn Sie SOAP verwenden möchten, habe ich jedoch beschlossen, einen Weg zu finden, um so viele Daten zu senden.
0 Stimmen
Haben Sie eine weniger ausführliche Form der Übermittlung als XML in Betracht gezogen? Oder ist XML in Stein gemeißelt?
0 Stimmen
Hey Chris, ja, das habe ich jetzt. Aber egal, wie sehr ich komprimiere, ich muss es vielleicht trotzdem in Stücken schicken. Ich bin eher neugierig und besorgt darüber, wie ich das hinbekomme. cheers though