【发布时间】:2010-01-25 07:14:25
【问题描述】:
我的应用程序为每个请求加载一个 xml 并更新 xml 元素。
我一次有 10 到 20 个请求,每个请求的 xml 加载过程都需要一些时间,因为它处于同步块中。
xml 大小为 500 KB,使用 DOM 解析器(旧代码)。
有什么方法可以提高性能?
【问题讨论】:
标签: java xml jakarta-ee
我的应用程序为每个请求加载一个 xml 并更新 xml 元素。
我一次有 10 到 20 个请求,每个请求的 xml 加载过程都需要一些时间,因为它处于同步块中。
xml 大小为 500 KB,使用 DOM 解析器(旧代码)。
有什么方法可以提高性能?
【问题讨论】:
标签: java xml jakarta-ee
在不了解您的应用程序、XML 数据的其他使用者或您对环境的控制权的情况下,您可能会考虑将数据保存在应用程序服务器上(是同一个文件还是一堆不同的文件,每个500kb?)并运行定期复制作业,以合理的时间间隔将更新的副本发送回原始源。
【讨论】:
我已经用 Stax 解析器替换了 DOM 解析器。解决了我的问题。
VTD-XML 速度更快,内存效率更高。但是...我强烈质疑 需要 在 每个 请求上解析 XML 文件。使用ServletContextListener 在应用程序范围内缓存它并使用TimerTask 每分钟左右保存一次缓存的内容会更有效。
【讨论】:
我已将 DOM 解析器替换为 Stax 解析器。解决了我的问题。
【讨论】: