Помимо других хороших предложений, я полагаю, что с тем, как вы используете JAXB, что-то не так - как правило, оно достаточно хорошо работает, если:
- Вы используете JAXB версии 2 (НИКОГДА не используйте устаревший JAXB 1 - это был ужасно медленный, бесполезный кусок дерьма); предпочтительно последняя версия 2.1.x от http://jaxb.dev.java.net
- Убедитесь, что вы используете SAX или Stax источник / назначение; НИКОГДА не используйте DOM, если только вы абсолютно не обязаны взаимодействовать: использование DOM сделает его в 3-5 раз медленнее, без какой-либо выгоды (это просто удваивает объектную модель: POJO -> DOM -> XML; часть DOM совершенно не нужна)
- Идеально использовать самый быстрый из доступных SAX / Stax парсер; Woodstox работает быстрее, чем встроенный процессор Sun Stax (и ссылка BEA подразумевает ошибки, не быстрее, чем у Sun)
Если JAXB по-прежнему более чем на 50% медленнее, чем вариант, написанный вручную, я бы профилировал его, чтобы увидеть, что еще идет не так. При правильном использовании он не должен работать медленно - я измерял его непрерывно и нашел его настолько быстрым, что преобразователи для рукописного ввода обычно не стоят времени и усилий.
Jibx тоже неплохой пакет, так что я ничего не имею против его опробовать. Это все еще может быть немного быстрее, чем JAXB; только не 5x или 10x, когда оба используются правильно.