使用jaxb XMLAdapter会影响性能吗?

时间:2011-06-08 16:54:44

标签: performance jaxb adapter

我正在使用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中的代码可以减慢速度吗?在我的例子中,代码相当简单,因此即使我没有使用适配器,它似乎也会发生一些类似的解组代码。

1 个答案:

答案 0 :(得分:1)

注意:我是EclipseLink JAXB (MOXy)负责人,也是JAXB 2(JSR-222)专家组的成员。

使用XmlAdapter的影响因JAXB实现(Metro,MOXy,Apache JaxMe等)而异,但主要包括以下内容:

  • 您在XmlAdapter
  • 中提供的代码的效率
  • 检查已初始化的XmlAdapter是否已传递到MarshallerUnmarshaller
相关问题