如何增强 DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlFile) 的性能?

问题描述 投票:0回答:1

275

我正在关注这篇文章 在 Java 中,如何将 XML 解析为字符串而不是文件? 并使用 JMeter 进行压力测试,每秒发送 100 个请求约 15 分钟,并使用 InteliJ Profiler 进行分析,发现

 parse
方法需要很多时间,如附图

Screenshot of Parsing time

我如何增强这个方法?

java xml string performance file
1个回答
0
投票

JAXP 工厂方法(例如

DocumentBuilderFactory.newInstance()
)的成本很高,因为它们搜索类路径以查找提供文档生成器服务的类。您最多只能在应用程序中调用此方法一次;理想情况下,根本不要调用它,因为只有当您希望应用程序的用户能够使用不同的(可能未经测试的!)文档生成器运行它时,您才需要它。相反,决定要使用哪个文档生成器并对其进行硬编码。

解析器也可能有相当多的初始化成本。理想情况下,如果您要解析数千个非常小的文件,请重用相同的解析器,而不是每次都创建一个新的解析器。但与寻找工厂相比,这只是一个微小的进步。

© www.soinside.com 2019 - 2024. All rights reserved.