【发布时间】:2011-06-08 16:54:43
【问题描述】:
我正在使用 JAXB 解组一个非常大的 XML 文件,其中 XMLAdapter 用于解组一个特定的“问题”类。 XMLAdapter 相当简单,但它被调用了很多次——我们预计单个 xml 文件会调用多达 200 万次。我们的测试文件更小——适配器被调用了 200,000 次——但我们注意到性能受到了影响。适配器相当标准:
public class MyAdapter extends XmlAdapter<Object, AdaptedClass> {
public static final String ATTRIBUTE_HREF = "href";
public AdaptedClass unmarshal(Object obj) throws Exception {
Element element = null;
if (obj instanceof Element) {
element = (Element)obj;
String id = element.getAttribute(ATTRIBUTE_HREF);
AdaptedClass pr = new AdaptedClass();
pr.setHref(id);
return pr;
}
}
我的问题:使用适配器有开销吗?例如,是否必须从表中查找适配器本身? adatper 中的代码会减慢速度吗?就我而言,代码相当简单,因此即使我没有使用适配器,似乎也会发生一些类似的解组代码。..
【问题讨论】:
-
在绑定文件中指定一个类似适配器的类会是一个更好的解决方案,还是这与指定一个 XMLAdapter 本质上是一样的?
标签: performance jaxb adapter