微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理 Razor Engine 进程? C# NETFramework 控制台

如何解决如何处理 Razor Engine 进程? C# NETFramework 控制台

我的程序的目的是将 XML 转换为发票的 PDF 表示,遵循特定的模板,具体取决于发票类型。它首先读取给定目录并过滤所有 XML 文件,然后存储一个包含所有 XML 文件路由的数组。对于每一个,它按照我国政府官方文件给出的类在一个对象中序列化。获得具有所有属性的对象后,我会读取发票的类型,并选择它将使用的模板,然后将模板和对象发送到 Razor Engine,以便它可以编写 PDF 文件。 问题是当数组在集合中有很多项目时。 ram 以 26mb 开始,最终每 7 或 8 个循环递增,如果数组有 5000 个项目,则 ram 可以增长到 500-800mb。 我已经关闭并处理了所有可能的进程,我检查了使它递增的行,它是编写 PDF 的行,这个:

#pragma warning disable CS0618 // type or member is obsolete
                    resultHTML = RazorEngine.Razor.Parse(sHTML,oComprobante);
#pragma warning restore CS0618 // type or member is obsolete

其中 sHTML 是模板 URL,oComprobante 是序列化对象。 考虑到这部分位于由包含所有 XML 路由的初始数组的每次迭代拉出的空洞内,我该如何优化它?我确定是这一行,因为我通过注释此代码行而不编写 PDF 来运行程序,并且 ram 保持在 26mb。 如果您需要我的程序的更多代码,我会发布,请告诉我。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。