Page 1 of 1

DocBook 5 RNG Performance

Posted: Sat Mar 03, 2007 8:56 am
by Nicol Bolas
I've noticed some performance issues with regard to using the RelaxNG DocBook 5 schema, and they seem unusual.

I know the DocBook 5 RNG schema is fairly large, so having some initial slowdown is expected. But what I'm getting is rather unexpected. Anytime I open up a DocBook 5 document, Oxygen freezes up for several seconds, presumably as it parses the schema. However, I would have expected it to recognize that the two (or 3, 4, 5, etc) documents use the same schema, and it therefore doesn't need to load it again.

What's worse is that if I blow past the heap and hit virtual memory, even switching from one document to another takes forever, likely provoking disc access and more schema processing.

Now, I am using the DocBook 5 that comes with Oxygen 8.1. I've checked the default catalog, so Oxygen shouldn't be running out to the web to find the schema; it should be on disc. And it definitely shouldn't be reloading a schema it already loaded for a different document.

Is there some setting I can use to improve performance? Because it's making me want to switch back to DocBook 4.x, and I really don't want to.

This happens on every machine I use Oxygen on, even the bug dual 2.66 Xeon 3GB-RAM monster I use at work (of course there, the pause isn't terribly long).

Posted: Mon Mar 05, 2007 4:35 pm
by sorin_ristache
Hello,

oXygen does not go out on the web to get the schema, it uses the local copy resolved by the catalog. It seems a problem in parsing the schema for building the model and extracting the schema annotations. We will look into it and we will let you know what you can do to work with Docbook 5 documents faster.


Thank you for your report,
Sorin

Posted: Wed Apr 18, 2007 12:36 pm
by sorin_ristache
Hello Nicol,

I just wanted to let you know that we fixed the performance problem in building the internal model of the RELAX NG schema. The Docbook 5 schema is large and the model needed an optimization. The fix will be available in oXygen version 8.2 which will be released in a short time.


Regards,
Sorin