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

发布于 2024-07-13 11:28:50 字数 259 浏览 5 评论 0原文

我正在使用 Dom4J 1.4.2。

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

SAXReader reader = new SAXReader(  );

创建 SaxReader 对象池并重用它们有什么价值吗? 每次调用时创建新的 SaxReader 会涉及多少开销?

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

I'm using Dom4J 1.4.2.

Right now my code creates a new SaxReader every time I want to parse a new XML document:

SAXReader reader = new SAXReader(  );

Is there any value in creating a pool of SaxReader objects and just reusing them? How much overhead is involved in creating a new SaxReader on every call?

My code could get one from the pool, parse the document then return it to the pool for another thread to use.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

居里长安 2024-07-20 11:28:50

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

我查看了 SAXReader,这是构造函数:

  138       public SAXReader() {
  139       }

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

As with all so-called performance issues and urges to pool objects: are you experiencing an actual problem, or are you trying to prematurely optimize here? Rolling your own pooling in Java has been out of fashion since at least 2005.

I peeked at the source code of SAXReader, and this is the constructor:

  138       public SAXReader() {
  139       }

There are no instance initializers, and the real work is done in the read method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文