hi, Bob Stayton wrote: > Hi Stefan, > Pretty much every title and xref, as well as any other generated text, > is processed by the gentext machinery. That's how DocBook handles > content in the 65 supported languages, including content with a mix of > languages. And every title is usually processed more than once, in > its location and in the TOC. I think it would be difficult to bypass > the gentext machinery, since it is part of the architecture of the > stylesheets. > > I don't think any of the developers would disagree if I said that the > DocBook XSL stylesheets are not optimized for speed, but for > supporting the large array of features and options, as well as > supporting customization. I had a client who needed speed and did not > need all the features, options, and customizations, so I wrote a new > set of XSL templates that did exactly what they wanted for the > elements they were using, and no more. They were fast. And they were > simple enough for them to maintain. > thanks for the reply. Thanks to my profiler I could make several optimizations that don't make the stylesheets worse or loose on functionality. Right now I have them in my customization layer. Not sure if anyone would be interested in patches.
Main problem with gentext right now is also that it does not remember any lookups (memoization in functional languages). Dunno if such thing is doable in xslt. I could certainly see the same lookups several time. What I am now looking into is writing a xslt pre processor, that reads the xsl + parameters, resolved includes + imports, kicks unused templates, replaces statics and so on. Then that pre processed stylesheet should be faster. Lots of work, lets see :) Stefan > Bob Stayton > Sagehill Enterprises > b...@sagehill.net > > > ----- Original Message ----- From: "Stefan Kost" > <enso...@hora-obscura.de> > To: <docbook-apps@lists.oasis-open.org> > Sent: Monday, March 08, 2010 6:29 AM > Subject: [docbook-apps] gentext.template eats 1/3 of CPU > > >> hi, >> >> I have a first version of a callgraph profiler for libxml/libxslt >> (https://bugzilla.gnome.org/show_bug.cgi?id=612186). With this I looked >> at profiles for applying the docbook stylesheets. These are the topmost >> entries: >> >> index % time self children called name >> 0.043 0.380 1947/3287 >> gentext.template.exists [4] >> 0.002 0.397 234/3287 *[object.title.template] >> [49] >> 0.380 0.380 1071/3287 gentext.template [0] >> 0.000 0.397 17/3287 >> part[object.title.template] [90] >> 0.000 0.397 18/3287 >> chapter[object.title.template] [102] >> [0] 33.26 0.380 0.380 3287 gentext.template [0] >> 0.380 0.380 1071/1071 gentext.template [0] >> ----------------------------------------------- >> 0.009 0.149 786/3967 *[find.chunks] [19] >> 0.010 0.154 738/3967 href.target.uri [18] >> 0.012 0.241 754/3967 *[chunk-filename] [16] >> 0.056 0.202 1638/3967 >> *[recursive-chunk-filename] [2] >> 0.001 0.136 35/3967 in.other.chunk [76] >> 0.001 0.173 16/3967 process-chunk [55] >> [1] 11.84 0.135 0.000 3967 chunk [1] >> ----------------------------------------------- >> >> lines with [x] in begin are the templates. lines above the callers, >> lines below the callees. Any idea how to make gentext.template less >> slow? Or make it called less often. There sees to be many: >> match="*" mode="object.title.template" >> and >> match="*" mode="object.title.markup" >> leading to it, but I can't see any template that uses e.g. >> mode="object.title.markup"? Any ideas? >> >> Stefan >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: docbook-apps-unsubscr...@lists.oasis-open.org >> For additional commands, e-mail: docbook-apps-h...@lists.oasis-open.org >> >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: docbook-apps-unsubscr...@lists.oasis-open.org > For additional commands, e-mail: docbook-apps-h...@lists.oasis-open.org > --------------------------------------------------------------------- To unsubscribe, e-mail: docbook-apps-unsubscr...@lists.oasis-open.org For additional commands, e-mail: docbook-apps-h...@lists.oasis-open.org