Java 创建Dom4J-SaxReader对象池有什么价值吗?

Java 创建Dom4J-SaxReader对象池有什么价值吗?,java,xml,dom4j,Java,Xml,Dom4j,我正在使用dom4j1.4.2 现在,每当我想解析新的XML文档时,我的代码都会创建一个新的SaxReader: SAXReader reader = new SAXReader( ); 创建SaxReader对象池并重用它们有什么价值吗?在每次调用中创建一个新的SaxReader需要多少开销? 我的代码可以从池中获取一个,解析文档,然后将其返回到池中供另一个线程使用 与所有所谓的性能问题和共享对象的冲动一样:您是否遇到了实际问题,或者您是否试图在此进行过早优化?至少从2005年起,您就开始

我正在使用dom4j1.4.2

现在,每当我想解析新的XML文档时,我的代码都会创建一个新的SaxReader:

SAXReader reader = new SAXReader(  );
创建SaxReader对象池并重用它们有什么价值吗?在每次调用中创建一个新的SaxReader需要多少开销?


我的代码可以从池中获取一个,解析文档,然后将其返回到池中供另一个线程使用

与所有所谓的性能问题和共享对象的冲动一样:您是否遇到了实际问题,或者您是否试图在此进行过早优化?至少从2005年起,您就开始在Java中使用自己的池

我查看了的源代码,这是构造函数:

  138       public SAXReader() {
  139       }

没有实例初始值设定项,真正的工作是通过
read
方法完成的。

与所有所谓的性能问题和共享对象的冲动一样:您是否遇到了实际问题,或者您是否试图在此进行过早优化?至少从2005年起,您就开始在Java中使用自己的池

我查看了的源代码,这是构造函数:

  138       public SAXReader() {
  139       }

没有实例初始值设定项,真正的工作是在
read
方法中完成的。

虽然在优化代码之前进行适当的分析是正确的方法,但您对SAXReader创建成本的评估是错误的和误导的。创建SAXReader很可能是一项代价高昂的操作。构造函数只是空的,因为如果私有XMLReader字段为null,则在read()-方法中初始化读取器。创建此XMLReader实例可能会导致类路径扫描!另请参见:虽然在优化代码之前进行适当的评测是正确的方法,但您对SAXReader创建成本的评估是错误的,并且会产生误导。创建SAXReader很可能是一项代价高昂的操作。构造函数只是空的,因为如果私有XMLReader字段为null,则在read()-方法中初始化读取器。创建此XMLReader实例可能会导致类路径扫描!另见: