机器配置为4CPU 16 GB RAM,并尝试处理800MB和300MB XML文件。 .NET Saxon API有时会在堆栈跟踪下抛出内存异常。看着前几个小时的perfstats,服务器似乎有10GB的空闲内存。下面的代码使用Task.Run()在并行任务中运行请指教。C#.Net SaxonApi抛出内存异常
DocumentBuilder documentBuilder = processor.NewDocumentBuilder();
documentBuilder.IsLineNumbering = true;
documentBuilder.WhitespacePolicy = WhitespacePolicy.PreserveAll;
XdmNode _XdmNode = documentBuilder.Build(xmlDocumentToEvaluate);
System.Exception: Error in ExecuteRules method ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at net.sf.saxon.tree.tiny.TinyTree.condense(Statistics)
at net.sf.saxon.tree.tiny.TinyBuilder.close()
at net.sf.saxon.event.ProxyReceiver.close()
at net.sf.saxon.pull.PullPushCopier.copy()
at net.sf.saxon.event.Sender.sendPullSource(PullSource , Receiver , ParseOptions)
at net.sf.saxon.event.Sender.send(Source source, Receiver receiver, ParseOptions options)
at net.sf.saxon.Configuration.buildDocument(Source source, ParseOptions parseOptions)
at net.sf.saxon.Configuration.buildDocument(Source source)
at Saxon.Api.DocumentBuilder.Build(XmlReader reader)
at Saxon.Api.DocumentBuilder.Build(XmlNode source)
不,我仍在调查并寻求一些帮助,如果撒克逊API有任何建议。 –
如果应用程序在64位计算机上以32位运行,SAXON API会导致大文件的内存不足异常... –