【问题标题】:Load XML for each request为每个请求加载 XML
【发布时间】:2010-01-25 07:14:25
【问题描述】:

我的应用程序为每个请求加载一个 xml 并更新 xml 元素。

我一次有 10 到 20 个请求,每个请求的 xml 加载过程都需要一些时间,因为它处于同步块中。

xml 大小为 500 KB,使用 DOM 解析器(旧代码)。

有什么方法可以提高性能?

【问题讨论】:

    标签: java xml jakarta-ee


    【解决方案1】:

    在不了解您的应用程序、XML 数据的其他使用者或您对环境的控制权的情况下,您可能会考虑将数据保存在应用程序服务器上(是同一个文件还是一堆不同的文件,每个500kb?)并运行定期复制作业,以合理的时间间隔将更新的副本发送回原始源。

    【讨论】:

    • 如果有多个应用服务器(或其他编写器),合并可能会很困难。
    • XML 驻留在同一台机器/服务器上
    • 好的,但要清楚,原来的问题确实说文件在不同的机器上。我们还没有听到的是我们是在处理一个 XML 文件,还是所有这 20-30 个同时请求都在处理不同的 XML 文件。
    【解决方案2】:

    我已经用 Stax 解析器替换了 DOM 解析器。解决了我的问题。

    VTD-XML 速度更快,内存效率更高。但是...我强烈质疑 需要每个 请求上解析 XML 文件。使用ServletContextListener 在应用程序范围内缓存它并使用TimerTask 每分钟左右保存一次缓存的内容会更有效。

    【讨论】:

      【解决方案3】:

      我已将 DOM 解析器替换为 Stax 解析器。解决了我的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-01
        • 2018-01-01
        • 1970-01-01
        • 2020-10-15
        • 1970-01-01
        • 2017-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多