Каков наилучший способ записи XML в OutputStream (TCP-сокет) без создания / создания слишком большого количества неизменяемых объектов?
Итак, у меня есть данные в ConcurrentHashMap. Я хочу зациклить эти данные, создать собственный XML и затем записать XML в OutputStream. Этот процесс будет повторяться, и поэтому я не хочу создавать слишком много объектов во время процесса преобразования / записи, чтобы GC не слишком загружался.
Я смотрел на JAXB и XStream, чтобы упростить преобразование Map в XML, но похоже, что с XMLAdapter в JAXB и подходом Convertor в XStream, я в конечном итоге получу объекты, созданные в процессе преобразования.
Я тоже готов кататься. Мне нужно решение, в котором я бы использовал повторно изменяемые объекты.
Я мог бы использовать StringBuffer и объединить все (теги XML и мои данные) с помощью метода append, а затем выполнить mystringBuffer.toString (). GetBytes () и записать байтовый массив в outputtream. В этом подходе я мог бы повторно использовать StringBuffer и ByteBuffer. Только bytearray будет новым объектом каждый раз.
Любой другой подход?
Похоже, я забегаю вперед и предполагаю, что у памяти / GC могут быть проблемы - я могу быть совершенно неправ, и простое использование JAXB или XStream может быть решением. Затем я мог бы просто провести тестирование производительности, чтобы выяснить узкое место.
Спасибо