Во-первых, важно, чтобы сериализация была правильной. Рукописные сериализаторы обычно нет. Например, они склонны забывать, что строка "]]>" не может появиться в текстовом узле.
Не так уж сложно написать свой собственный сериализатор, который будет и правильным, и быстрым, если вы опытный Java-программист, но поскольку некоторые очень способные Java-программисты были здесь раньше, я думаю, вы вряд ли победите их достаточный запас для написания собственного кода.
За исключением, пожалуй, того, что большинство библиотек общего назначения могли бы немного замедлиться, предлагая опции сериализации - например, отступ или кодирование, или, например, выбор конца строки. Вы можете просто выжать лишнюю унцию производительности, избегая нежелательных функций.
Кроме того, некоторые библиотеки общего назначения могут проверять правильность написанного вами, например, проверять, объявлены ли префиксы пространства имен (или объявлять их, если нет). Вы можете сделать это быстрее, если он не проверяет. С другой стороны, вы можете создать библиотеку, которая будет быстрой, но свинья для работы. Ставить производительность выше всех других целей - это почти всегда ошибка.
Что касается производительности доступных библиотек, измерьте их и расскажите нам, что вы нашли.