I have new intel on this. A colleague generated a flame graph.
I cannot share the raw svg unfortunately, but I cropped the Feature JAXB parsing.

It is about 25% of the overall startup time just to boot up the jaxb infrastructure.


On Fri, Jul 22, 2016 at 10:06 AM, Fabian Lange <fabian.lange@codecentric.de> wrote:
Thanks, good hint.
For those inclined to understand my request, attached is the output of -XX:+TraceClassLoading

Using the xml binding feature approximately loads 800 classes (which represent about 5MB memory)

I haven't checked alternatives to the jaxb. And I am aware that this is a more esoteric requirement to reduce footprint.

However, I am sure if this would not be from the JDK, nobody would pull in a 5MB dependency to parse a single xml file.


On Fri, Jul 22, 2016 at 9:25 AM, Guillaume Nodet <gnodet@apache.org> wrote:
Note that on older branches, the feature repositories are still parsed
using DOM

The xml is now also written, that may be the reason why we switched.

2016-07-14 23:11 GMT+02:00 Fabian Lange <fabian.lange@codecentric.de>:

> Hi,
> i am looking into ways to trim down Karaf. I notices that Karaf uses JaxB
> to parse features.xml - However this is the only application of JaxB.
> Could somebody more involved help me to figure out if it is worth to
> replace it with manual marshalling? I assume other xmls are parsed
> differently?
> Advantage would be that the whole jaxb infrastructure could be avoided,
> including the contexts.
> I know manual parsing is a pain, but anyway, just wanted to throw this out,
> maybe somebody has a good suggestion.
> Fabian
> --
> Fabian Lange | Performance Expert
> mobil: +49 (0) 160.3673393
> codecentric AG | Merscheider Straße 1 | 42699 Solingen | Deutschland
> Sitz der Gesellschaft: Solingen | HRB 25917| Amtsgericht Wuppertal
> Vorstand: Michael Hochgürtel . Mirko Novakovic . Rainer Vehns
> Aufsichtsrat: Patric Fedlmeier (Vorsitzender) . Klaus Jäger . Jürgen Schütz

Guillaume Nodet
Red Hat, Open Source Integration

Email: gnodet@redhat.com
Web: http://fusesource.com
Blog: http://gnodet.blogspot.com/