什么是XML生成的最佳性能解决方案.
我的目标是从代码构建一些简单的XML.我将实现XML Builder的简单自定义StringBuffer实现.从另一方面,有几个库,如http://code.google.com/p/java-xmlbuilder/和http://code.google.com/p/xmltool/,它有很好的DSL,但我觉得缺乏性能.
由于我的目标是构建简单的XMLBuilder并具有出色的性能,我想我将构建自定义解决方案.它将特色:
请告知我是否对性能预期有误,并且可能更好地使用现成的库.
UPDATE.为什么我认为标准xml构建器的性能不是很好.
标准XML构建器使用Document Builder Factory并在后台使用类.这些类也经过优化以适合所有用户.例如,我不需要命名空间支持等.
<?xml version="1.0" encoding="utf-8">
<root>
<testdata>value</testdata>
</root>
</xml>
Run Code Online (Sandbox Code Playgroud)
考虑上面非常简单的XML代码.如果使用标准工具构建,那么只需要制作这么简单的XML就可以完成很多工作.我认为最好是自己使用String生成它.
更新2.性能要求是代码应该尽可能多地生成简单的XML而不是更多.
更新3.感谢大家的好评!现在我更了解我需要什么,并且我的初始目标没有用"性能"这个词设置得非常正确.我的真正目标是使用方便的DSL来使用足够简单的解决方案来描述XML结构并生成XML输出.
我将使用普通的Java对象作为DSL的XML,并使用XStream库生成XML,这是非常简单的解决方案.
更新4. JAXB.我讨论了XStream vs JAXB,发现JAXB比XStream快.另外我已经在我的项目中使用了JAXB,我喜欢它的标准注释.我改变了主意,现在将继续使用JAXB,因为XStream最初是在JAXB不如今天那么好的时候开发的.
我会建议一些非常有争议的东西,但仍然......
使用这两个库进行分析和性能测试。
如果您没有时间这样做,那么在我看来,假设某些事情很慢将是错误的选择。因为如果事实证明它实际上并不慢,那么使用已经构建和支持的库/框架将为您节省大量时间。
另一个想法。您将需要针对现有的解决方案来测试您已完成的高性能解决方案,以检查它是否真正具有高性能。因此,我强烈建议您在开始自己的库之前先测量可用库的性能。