Avatar billede beef12 Nybegynder
06. oktober 2005 - 14:16 Der er 3 kommentarer og
1 løsning

Outofmemory Exception

Jeg har en XML-fil og et stylesheet som udskriver noget nyt XML.
Syntaksmæssigt virker koden, men når jeg kører programmet på en meget stor XML-fil (5MB) løber jeg tør for RAM.

Kan jeg bygge koden op på en mere hensigtsmæssig måde der gør at jeg ikke får det problem?



private const string transform = "c:\\test\\XMLSchema.xsd";
private const string input2 = "c:\\test\\XMLTEST.xml";
private const string output = "c:\\test\\FormattedXML.xml";

public XsltClass()
{

XmlDocument doc = new XmlDocument();

doc.Load(input2);
XslTransform xslt = new XslTransform();
xslt.Load(new XmlTextReader(transform), null, null);
StringWriter sw = new StringWriter();
XmlTextWriter wrt = new XmlTextWriter(sw);
wrt.Formatting = Formatting.Indented;
xslt.Transform(doc, null, wrt, null);
Console.WriteLine(sw.ToString());

}
Avatar billede arne_v Ekspert
06. oktober 2005 - 14:20 #1
XML er berygtet for at bruge meget memory !

Hvor meget memory er der i maskinen ?

Du kan muligvis spare lidt ved at skrive til disk fremfor til en string
(erstat StringWriter med en StreamWriter) forfi så skal output ikke opbevares
i hukommelsen.
Avatar billede beef12 Nybegynder
06. oktober 2005 - 14:24 #2
Der er 1 GB i :-(
Og jeg har prøvet at skrive til fil. Samme resultat desværre.
Avatar billede beef12 Nybegynder
06. oktober 2005 - 14:31 #3
Kunne jeg ikke på en eller anden måde begrænse min app til en vis del af hukommelsen?
Avatar billede beef12 Nybegynder
06. oktober 2005 - 15:13 #4
Nårh - det var mig der havde lavet en fejl i mit stylesheet, så mit output fyldte 500 MB, hvilket ikke var helt rigtigt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester