我有一组xslt样式表文件。我需要生成XslConpiledTransform的最快性能,所以我想在内存中表示这些样式表。
我可以在应用程序启动时将它们作为IXpathNavigable加载到内存中集合中,然后在每个请求上将每个IXPAthNavigable加载到singleton XslCompiledTransform中。 但这仅适用于没有xsl:import或xsl:include的样式。 (Xsl:import仅适用于文件)。
我也可以为每个模板加载许多XSLCompiledTransform实例。这是合理的吗?
还有其他方法吗?哪个最好?什么是提高MS Xslt处理器性能的另一个技巧?
答案 0 :(得分:3)
在Load()
的实例上成功执行XslCompiledTransform
后,可以缓存此实例以获得更好的性能。
请记住Load()是一项非常昂贵的操作。
答案 1 :(得分:1)
您可以使用MS SDK工具xsltc.exe(XSL编译器)生成程序集,而不是在运行时编译和缓存XSL转换。
在运行时,您的应用程序将动态加载这些程序集(或者您只需向应用程序添加静态引用)并调用重载的XslCompiledTransform.Load(System.Type类型)方法来加载您编译到XSL中的类型组装
这是绝对最快的方法,因为您不会产生运行时的编译代价 - 仅在构建/编译时。