Ich schreibe ein Programm für die Formatierung von 100 MB-String-Daten (in der Nähe eines Gig) in xml == Und ich bin es erforderlich, um es als Antwort auf eine HTTP (GET) Anfrage zurückzugeben.Sehr große Zeichenfolge im Speicher
Ich bin mit einem Stringwriter/XmlWriter eine XML der Datensätze in einer Schleife zu bauen und die
using (StringWriter writer = new StringWriter())
using (writer = XmlWriter.Create(writer, settings)) //where settings are the xml props
writer.ToString()
während des Testens der Rückkehr sah ich ein paar --out Speicher exceptions-- und ganz ahnungslos, wie eine Lösung finden? Habt ihr Vorschläge für eine speicheroptimierte Antwort?
Gibt es eine speichereffiziente Möglichkeit, die Daten zu codieren? oder vielleicht die Daten Chunking - Ich kann einfach nicht daran denken, wie es zurückzukehren, ohne das Ganze zu einer riesigen String-Objekt zu bauen
dank
- einige Präzisierungen - dies ist ein asp .net Webservices App über eine Gigabit-Ethernet-Verbindung als Josh notiert. Ich bin damit nicht sehr vertraut, also noch ein bisschen eine Lernkurve.
ich XMLWriter bin mit dem XML zu erstellen und eine Zeichenfolge aus ihm heraus erstellen String mit
einige Statistiken - Antwort xml size = etwa 385 MB (meine Daten Größe sehr schnell wachsen wird auf weit mehr als diese)
String Objektgröße, wie durch einen Speicher-Profiler berechnet = kulminierte an 605MB
und vielen dank an alle, die geantwortet haben ...
1 GB xml als HTTP-Antwort? "Ja wirklich?" –
Das klingt nach einer schlechten Idee. –
Ich bin versucht zu sagen "werfen Sie ein paar Hardware" (Scherz). 500 MB (oder 350 MB oder 1 GB) pro Client sind nicht skalierbar. Vielleicht könnten Sie etwas mehr Licht auf XML werfen, das Sie generieren. Diese http://msdn.microsoft.com/en-us/library/aa528818.aspx könnte helfen. – PRR