【问题标题】:fastest in-memory cache for XslCompiledTransformXslCompiledTransform 的最快内存缓存
【发布时间】:2009-03-05 18:31:46
【问题描述】:

我有一组 xslt 样式表文件。我需要产生最快的 XslConpiledTransform 性能,所以我想在内存中表示这些样式表。

我可以在应用程序启动时将它们作为 IXpathNavigable 加载到内存集合中,然后在每次请求时将每个 IXPAthNavigable 加载到单例 XslCompiledTransform 中。 但这仅适用于没有 xsl:import 或 xsl:include 的样式集。 (Xsl:import 仅适用于文件)。

我还可以为每个模板加载许多 XSLCompiledTransform 实例到缓存中。合理吗?

还有其他方法吗?哪个最好?还有哪些提高 MS Xslt 处理器性能的技巧?

【问题讨论】:

    标签: xslt xslcompiledtransform


    【解决方案1】:

    XslCompiledTransform的一个实例上成功执行Load()后,可以缓存这个实例以获得更好的性能

    请记住 Load() 是一项非常昂贵的操作。

    【讨论】:

      【解决方案2】:

      您可以使用 MS SDK 工具 xsltc.exe(XSL 编译器)生成程序集,而不是在运行时编译和缓存 XSL 转换。

      然后,在运行时,您的应用程序将动态加载这些程序集(或者您可以只向您的应用程序添加静态引用)并调用重载的 XslCompiledTransform.Load(System.Type type) 方法来加载您编译到 XSL 中的类型组装。

      这是绝对最快的方式,因为您不会招致运行时的编译损失 - 仅在构建/编译时。

      【讨论】:

        猜你喜欢
        • 2011-11-10
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-27
        • 2010-12-21
        • 2018-05-23
        相关资源
        最近更新 更多