【发布时间】:2010-10-07 13:51:03
【问题描述】:
我正在使用 Dom4J 1.4.2。
现在我的代码在每次我想解析一个新的 XML 文档时都会创建一个新的 SaxReader:
SAXReader reader = new SAXReader( );
创建一个 SaxReader 对象池并重用它们有什么价值吗?每次调用创建一个新的 SaxReader 需要多少开销?
我的代码可以从池中获取一个,解析文档然后将其返回到池中以供另一个线程使用。
【问题讨论】:
我正在使用 Dom4J 1.4.2。
现在我的代码在每次我想解析一个新的 XML 文档时都会创建一个新的 SaxReader:
SAXReader reader = new SAXReader( );
创建一个 SaxReader 对象池并重用它们有什么价值吗?每次调用创建一个新的 SaxReader 需要多少开销?
我的代码可以从池中获取一个,解析文档然后将其返回到池中以供另一个线程使用。
【问题讨论】:
与所有所谓的性能问题和池对象的冲动一样:您是否遇到了实际问题,或者您是否试图在这里过早地进行优化?至少从 2005 年开始,在 Java 中滚动您自己的池就一直是 out of fashion。
我偷看了SAXReader的源码,这是构造函数:
138 public SAXReader() {
139 }
没有实例初始化器,真正的工作是在read 方法中完成的。
【讨论】: