gpt4 book ai didi

c# - StringTemplate 性能不佳

转载 作者:太空狗 更新时间:2023-10-30 01:27:30 25 4
gpt4 key购买 nike

我正在使用 StringTemplate 从数据集生成一些 xml 文件。有时我在数据集中有超过 100,000 条记录,这些记录由模板中的循环枚举。它进行得非常慢(每次操作 15-20 秒),所以性能对我来说不是很好。

这是我如何使用 ST 呈现报告的示例:

using (var sw = new StringWriter())
{
st.Write(new StringTemplateWriter(sw));
return sw.ToString();
}

StringTemplateWriter 是派生自 IStringTemplateWriter 的简单编写器类,没有缩进。

顺便说一下,在调试屏幕上我看到了很多这样奇怪的信息:
“StringTemplate.DLL 中出现类型为‘antlr.NoViableAltException’的第一次机会异常”

在深度调试中,我发现它递归地解析我的模板,如果有什么失败(不知道到底是什么),它会抛出 NoViableAltException 异常以从堆栈深处返回到表面,所以我猜问题是使用过多的 try-catch-throw。

谷歌没有发现任何有用的东西。

主要问题:如何减少这个异常的数量(重写ST的代码除外)并提高模板渲染的性能?

最佳答案

ST 使用 ANTLR 解析 ST 模板和组。如果您收到语法错误,则说明您的模板有错误。所有的赌注都与性能有关,因为它会为每个赌注抛出一个异常。 ANTLR/ST 在这里没有错;)特伦斯

关于c# - StringTemplate 性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com