Я распаковываю очень большой XML-файл, используя JAXB с XMLAdapter, который используется для распаковки одного конкретного «проблемного» класса.XMLAdapter довольно прост, но он вызывается много раз - мы ожидаем до 2 миллионов раз для одного XML-файла.Наш тестовый файл меньше - адаптер вызывается 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 замедлить работу?В моем случае код довольно прост, поэтому кажется, что некоторый подобный код не может быть использован, даже если бы я не использовал адаптер ..