所以有一段时间我一直在使用XslCompiledTransform,因为这是Microsoft告诉我的,因为XslTransform已过时,我需要使用它。最近,我不得不将其用于具有近100,000行的转换(当然生成了xsl)。当我使用我的应用程序时,我惊讶地看到一个OOM弹出。不管我做什么-我都得到了OOM。

谁能告诉我如何解决OOM的问题-XslCompiledTransform上是否有“ swtich”?我不知道您将如何复制确切的问题,但是如果有人有任何答案,将不胜感激。

谢谢-下面的代码:

作品:

XslTransform myXslTransform = new XslTransform();
myXslTransform.Load(xslWith100ThousandLines);
MemoryStream m = new MemoryStream();
myXslTransform.Transform(myXPathDocument, null, m);
m.Flush();
m.Close();


OOM失败

XslCompiledTransform cxslt = new XslCompiledTransform();
cxslt.Load(xslWith100ThousandLines);
MemoryStream m = new MemoryStream();
cxslt.Transform(myXPathDocument, null, m);
m.Flush();
m.Close();

最佳答案

好的,所以现在我想,也许这更像是“微软就是微软”……直觉上,我将目标平台改回了“ Any CPU”,关闭了所有我的Visual Studio实例,然后重新打开了我的项目……然后清理,重新编译并重新运行,我再次得到了OOM ...

然后,我将目标平台设置回x86并降低到更低的水平,不再看到OOM!我曾经遇到过很多与x64相关的问题,将来我会确保将它们包含在任何帖子中……更多的时候不是因为x64 ...

奇怪...但问题已解决...:S

关于c# - XslCompiledTransform与XslTransform,以及良好的OOM怎么样?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/440755/

10-13 02:08