创建 Dom4J SaxReader 对象池有什么价值吗?
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
与所有所谓的性能问题和池化对象的冲动一样:您是否遇到了实际问题,或者您是否试图在此过早优化? 在 Java 中滚动您自己的池已经了至少从 2005 年开始就流行起来。
我查看了 SAXReader,这是构造函数:
没有实例初始值设定项,真正的工作是在
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:
There are no instance initializers, and the real work is done in the
read
method.