Thread: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Erik Rijkers
Date:
On 2016-11-16 08:06, Peter Eisentraut wrote: > Build HTML documentation using XSLT stylesheets by default > > The old DSSSL build is still available for a while using the make > target > "oldhtml". This xslt build takes 8+ minutes, compared to barely 1 minute for 'oldhtml'. I'd say that is a strong disadvantage. I hope 'for a while' will mean 'for a long time to come' or even 'forever.' Erik Rijkers
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Tom Lane
Date:
Erik Rijkers <er@xs4all.nl> writes: > This xslt build takes 8+ minutes, compared to barely 1 minute for > 'oldhtml'. I'm just discovering the same. > I'd say that is a strong disadvantage. I'd say that is flat out unacceptable. I won't ever use this toolchain if it's that much slower than the old way. What was the improvement we were hoping for, again? regards, tom lane
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Andrew Dunstan
Date:
On 11/16/2016 09:46 AM, Tom Lane wrote: > Erik Rijkers <er@xs4all.nl> writes: >> This xslt build takes 8+ minutes, compared to barely 1 minute for >> 'oldhtml'. > I'm just discovering the same. > >> I'd say that is a strong disadvantage. > I'd say that is flat out unacceptable. I won't ever use this toolchain > if it's that much slower than the old way. What was the improvement > we were hoping for, again? > > On the buildfarm crake has gone from about 2 minutes to about 3.5 minutes to run "make doc". That's not good but it's not an eight-fold increase either. cheers andrew
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Robert Haas
Date:
On Wed, Nov 16, 2016 at 9:46 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Erik Rijkers <er@xs4all.nl> writes: >> This xslt build takes 8+ minutes, compared to barely 1 minute for >> 'oldhtml'. > > I'm just discovering the same. > >> I'd say that is a strong disadvantage. > > I'd say that is flat out unacceptable. I won't ever use this toolchain > if it's that much slower than the old way. What was the improvement > we were hoping for, again? Gosh, and I thought the existing toolchain was already ridiculously slow. Couldn't somebody write a Perl script that generated the HTML documentation from the SGML in, like, a second? I mean, we're basically just mapping one set up markup tags to another set of markup tags. And splitting up some files for the HTML version. And adding some boilerplate. But none of that sounds like it should be all that hard. I am reminded of the saying that XML is like violence -- if it doesn't solve your problem, you're not using enough of it. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Robert Haas
Date:
On Wed, Nov 16, 2016 at 10:16 AM, Andrew Dunstan <andrew@dunslane.net> wrote: > On the buildfarm crake has gone from about 2 minutes to about 3.5 minutes to > run "make doc". That's not good but it's not an eight-fold increase either. On my MacBook, "time make docs" as of e36ddab11735052841b4eff96642187ec9a8a7bc: real 2m17.871s user 2m15.505s sys 0m2.238s And as of 4ecd1974377ffb4d6d72874ba14fcd23965b1792: real 1m47.696s user 1m47.085s sys 0m1.145s -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Peter Eisentraut
Date:
On 11/16/16 6:29 AM, Erik Rijkers wrote: > On 2016-11-16 08:06, Peter Eisentraut wrote: >> Build HTML documentation using XSLT stylesheets by default >> >> The old DSSSL build is still available for a while using the make >> target >> "oldhtml". > > This xslt build takes 8+ minutes, compared to barely 1 minute for > 'oldhtml'. I have committed another patch to improve the build performance a bit. Could you check again? On my machine and on the build farm, the performance now almost matches the DSSSL build. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Peter Eisentraut
Date:
On 11/16/16 6:46 AM, Tom Lane wrote: > What was the improvement we were hoping for, again? Get off an ancient and unmaintained tool chain. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Erik Rijkers
Date:
On 2016-11-16 21:59, Peter Eisentraut wrote: > On 11/16/16 6:29 AM, Erik Rijkers wrote: >> >> This xslt build takes 8+ minutes, compared to barely 1 minute for >> 'oldhtml'. > > I have committed another patch to improve the build performance a bit. > Could you check again? It is indeed better (three minutes off, nice) but still: real 5m21.348s -- for 'make -j 8 html' versus real 1m8.502s -- for 'make -j 8 oldhtml' Centos 6.6 - I suppose it's getting a bit old, I don't know if that's the cause of the discrepancy with other's measurements. Obviously as long as 'oldhtml' is possible I won't complain. thanks, Erik Rijkers
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Alvaro Herrera
Date:
Peter Eisentraut wrote: > > This xslt build takes 8+ minutes, compared to barely 1 minute for > > 'oldhtml'. > > I have committed another patch to improve the build performance a bit. > Could you check again? After the optimization, on my laptop it takes 2:31 with the new system and 1:58 with the old one. If it can be made faster, all the better, but at this level I'm okay. Now admittedly this conversion didn't do one bit towards the goal I wanted to achieve: that each doc source file ended up as a valid XML file that could be processed separately with tools like xml2po. They are still SGML only -- in particular no doctype declaration and incomplete closing tags. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Tom Lane
Date:
Erik Rijkers <er@xs4all.nl> writes: > On 2016-11-16 21:59, Peter Eisentraut wrote: >> I have committed another patch to improve the build performance a bit. >> Could you check again? > It is indeed better (three minutes off, nice) but still: > real 5m21.348s -- for 'make -j 8 html' > versus > real 1m8.502s -- for 'make -j 8 oldhtml' Yeah, I get about the same. > Centos 6.6 - I suppose it's getting a bit old, I don't know if that's > the cause of the discrepancy with other's measurements. ... and on the same toolchain. Probably the answer is "install a newer toolchain", but from what I understand, there's a whole lot of work there if your platform vendor doesn't supply it already packaged. regards, tom lane
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Peter Eisentraut
Date:
On 11/16/16 1:23 PM, Alvaro Herrera wrote: > Now admittedly this conversion didn't do one bit towards the goal I > wanted to achieve: that each doc source file ended up as a valid XML > file that could be processed separately with tools like xml2po. They > are still SGML only -- in particular no doctype declaration and > incomplete closing tags. Yes, that is one of the upcoming steps. But we need to do the current thing first. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Peter Eisentraut
Date:
On 11/16/16 1:14 PM, Erik Rijkers wrote: > real 5m21.348s -- for 'make -j 8 html' > versus > real 1m8.502s -- for 'make -j 8 oldhtml' > > Centos 6.6 - I suppose it's getting a bit old, I don't know if that's > the cause of the discrepancy with other's measurements. I tested the build on a variety of operating systems, including that one, with different tool chain versions and I am getting consistent performance. So the above is unclear to me at the moment. For the heck of it, run this xsltproc --nonet --stringparam pg.version '10devel' stylesheet.xsl postgres.xml to make sure it's not downloading something from the network. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Erik Rijkers
Date:
On 2016-11-17 02:15, Peter Eisentraut wrote: > On 11/16/16 1:14 PM, Erik Rijkers wrote: >> real 5m21.348s -- for 'make -j 8 html' >> versus >> real 1m8.502s -- for 'make -j 8 oldhtml' >> >> Centos 6.6 - I suppose it's getting a bit old, I don't know if that's >> the cause of the discrepancy with other's measurements. > > I tested the build on a variety of operating systems, including that > one, with different tool chain versions and I am getting consistent > performance. So the above is unclear to me at the moment. > > For the heck of it, run this > > xsltproc --nonet --stringparam pg.version '10devel' stylesheet.xsl > postgres.xml > > to make sure it's not downloading something from the network. $ time xsltproc --nonet --stringparam pg.version '10devel' stylesheet.xsl postgres.xml real 5m43.776s $ ( cd /home/aardvark/pg_stuff/pg_sandbox/pgsql.HEAD/doc/src/sgml; time make oldhtml ) real 1m14.152s (I did clean out in between)
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Peter Eisentraut
Date:
On 11/16/16 3:59 PM, Peter Eisentraut wrote: >>> Build HTML documentation using XSLT stylesheets by default >>> >>> The old DSSSL build is still available for a while using the make >>> target >>> "oldhtml". >> >> This xslt build takes 8+ minutes, compared to barely 1 minute for >> 'oldhtml'. > > I have committed another patch to improve the build performance a bit. > Could you check again? > > On my machine and on the build farm, the performance now almost matches > the DSSSL build. Anyone who is still getting terrible performance (>2x slower) from the html build, please send me the output of xsltproc --profile --timing --stringparam pg.version '10devel' stylesheet.xsl postgres.xml 2>profile.txt so I can look into it. (It will be big, so feel free to paste it somewhere or send privately.) -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Tom Lane
Date:
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > On 11/16/16 3:59 PM, Peter Eisentraut wrote: >> On my machine and on the build farm, the performance now almost matches >> the DSSSL build. Still sucks for me on an up-to-date RHEL6 box: about 1m5s to build oldhtml, about 4m50s to build html, both starting after "make maintainer-clean" in the doc/src/sgml/ subdirectory. BTW, I notice the "make check-tabs" step isn't getting run with the new target; is that intentional? > Anyone who is still getting terrible performance (>2x slower) from the > html build, please send me the output of > xsltproc --profile --timing --stringparam pg.version '10devel' > stylesheet.xsl postgres.xml 2>profile.txt > so I can look into it. It wasn't that big, so attached. regards, tom lane Parsing stylesheet stylesheet.xsl took 3 ms Parsing document postgres.xml took 258 ms number match name mode Calls Tot 100us Avg 0 gentext.template 740222 13445998 18 1 l10n.language 604192 5579772 9 2 footnote footnote.number 36 2458970 68304 3 href.target 31220 1170552 37 4 gentext.template.exists 547516 651313 1 5 inherited.table.attribute 124970 449412 3 6 * html.title.attribute 181126 421298 2 7 gentext 13441 307385 22 8 chunk-all-sections 1332 299884 225 9 chunk 237364 299160 1 10 substitute-markup 86180 200978 2 11 simple.xlink 91501 193179 2 12 entry|entrytbl entry 22086 184189 8 13 dbhtml-dir 276346 167630 0 14 lookup.key 306424 160120 0 15 * recursive-chunk-filename 102309 154378 1 16 xref no.anchor.mode 70 131384 1876 17 pi-attribute 382931 130482 0 18 xpath.location 167791 123089 0 19 anchor 171571 114268 0 20 * head.keywords.content 5300 100556 18 21 sect1 label.markup 26594 97906 3 22 chapter label.markup 32343 88112 2 23 dir 175593 86788 0 24 object.id 195572 85495 0 25 get-attribute 628313 84789 0 26 * title.markup 168553 80976 0 27 figure|table|example label.markup 1226 77663 63 28 colnum.colspec 127081 76139 0 29 write.chunk 1333 74765 56 30 appendix label.markup 26516 70527 2 31 autolabel.format 101251 62680 0 32 pi.dbhtml_dir 276346 60904 0 33 dbhtml-attribute 382900 58037 0 34 header.navigation 1332 57161 42 35 * common.html.attributes 101057 56244 0 36 html:p|p unwrap.p 33426 55942 1 37 label.this.section 75320 55522 0 38 inline.monoseq 56958 54528 0 39 footer.navigation 1332 53082 39 40 * class.attribute 104793 48923 0 41 * html.lang.attribute 152756 44097 0 42 paragraph 29312 42340 1 43 subtoc 9081 41895 4 44 gentext.dingbat 3300 39823 12 45 * chunk-filename 63772 38154 0 46 generate.html.title 175545 37800 0 47 sect2|sect3|sect4|sect5 label.markup 15501 37231 2 48 section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3|refsection |simplesect title.markup 37437 35762 0 49 calculate.following.spans 83318 35576 0 50 indexterm index-div-basic 26 34136 1312 51 entry|entrytbl sentry span 19520 32710 1 52 unwrap.p 29312 31750 1 53 para 29295 30011 1 54 copy-string 70123 29407 0 55 href.target.uri 62440 29263 0 56 trim.common.uri.paths 62440 29200 0 57 pi.dbhtml_filename 102310 27579 0 58 inline.charseq 14419 26451 1 59 generate.html.lang 152756 25862 0 60 title title.markup 46495 23765 0 61 text() 194407 23617 0 62 refentry title.markup 5972 23442 3 63 itemizedlist/listitem 10284 23290 2 64 normal-row 6255 23131 3 65 section.level 78312 22954 0 66 * unwrap.p 88692 22797 0 67 chunk-element-content 1332 22458 16 68 toc.line 9081 20248 2 69 get.doc.title 1 18801 18801 70 common.html.attributes 32406 18656 0 71 indexterm index-primary 2190 16515 7 72 locale.html.attributes 51699 16392 0 73 find.path.params 18094 16077 0 74 * object.title.markup 29801 15843 0 75 unwrap.p.nodes 6200 15626 2 76 entry.colnum 41606 14283 0 77 indexterm reference 2669 13521 5 78 xref xref 3928 12705 3 79 * class.value 104833 12675 0 80 apply-annotations 80442 12141 0 81 * object.title.markup.textonly 14937 11214 0 82 count.uri.path.depth 31220 11179 0 83 section.heading 2992 10943 3 84 reference label.markup 6 10568 1761 85 section |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3 |simplesect titleabbrev.markup 8908 10104 1 86 * insert.title.markup 28625 9847 0 87 process-chunk 1332 9518 7 88 sect1|sect2|sect3|sect4|sect5|section 2973 8518 2 89 is.component 26594 8431 0 90 text()|processing-instruction()|comment() unwrap.p 166230 8339 0 91 section|sect1|sect2|sect3|sect4|sect5|simplesect |bridgehead object.title.template 16207 8295 0 92 navig.content 10626 8278 0 93 generate-basic-index 1 7915 7915 94 inline.italicmonoseq 8086 6607 0 95 section.title 2992 6534 2 96 process-chunk-element 1332 6279 4 97 head.content 1333 6082 4 98 programlisting|screen|synopsis 3450 5867 1 99 index.separator 8007 5666 0 100 preface|chapter|appendix title.markup 3942 5411 1 101 formal.object 416 5294 12 102 refentrytitle|refname|refdescriptor title.markup 7776 5193 0 103 * no.anchor.mode 7463 4871 0 104 sect2.titlepage.recto 1398 4860 3 105 * locale.html.attributes 51699 4715 0 106 sect2 1398 4702 3 107 * object.xref.template 2069 4567 2 108 sect2.titlepage 1398 4358 3 109 check.id.unique 5658 4182 0 110 sect1 960 4022 4 111 * insert.label.markup 22440 4008 0 112 sect1.titlepage.recto 960 3963 4 113 indexterm index-div-quicklinks 26 3904 150 114 html.head 1332 3856 2 115 tgroup tgroup 392 3630 9 116 refentry toc 597 3404 5 117 * object.xref.markup 2069 3379 1 118 sect1.titlepage 960 3287 3 119 itemizedlist 974 3270 3 120 process.footnotes 1331 3220 2 121 varlistentry/term 4567 3172 0 122 refsection|refsect1|refsect2|refsect3 1447 3051 2 123 varlistentry 3960 3049 0 124 row 6255 2930 0 125 varlistentry/listitem 3960 2874 0 126 indexterm index-secondary 444 2700 6 127 quote 1635 2659 1 128 component.toc 79 2472 31 129 variablelist 669 2288 3 130 copyright titlepage.mode 1 2255 2255 131 reference 780 2060 2 132 link link 1653 1973 1 133 * object.title.template 10261 1940 0 134 * intralabel.punctuation 43230 1918 0 135 process.chunk.footnotes 2973 1862 0 136 in.other.chunk 1554 1700 1 137 output.html.stylesheets 1333 1562 1 138 indexterm 2704 1488 0 139 function 5438 1477 0 140 caution|tip|warning|important|note title.markup 2178 1404 0 141 nongraphical.admonition 726 1397 1 142 refentry xref-to 1223 1349 1 143 sect3.titlepage.recto 397 1315 3 144 sect3 397 1303 3 145 sect2 toc 4188 1276 0 146 sect3.titlepage 397 1272 3 147 sect1 toc 2875 1221 0 148 chapter object.title.template 2130 1189 0 149 * index-title-content 780 1176 1 150 finaltd 6258 1134 0 151 chapter|appendix insert.title.markup 3245 1114 0 152 literal 24553 1084 0 153 dingbat.characters 884 1047 1 154 sfinaltd 5480 1009 0 155 count.footnotes.in.this.chunk 1363 971 0 156 make-relative-filename 1333 933 0 157 calsTable 376 927 2 158 section|simplesect |sect1|sect2|sect3|sect4|sect5 |refsect1|refsect2|refsect3|refsection xref-to 1517 919 0 159 ulink ulink 262 876 3 160 step number 426 872 2 161 dot.count 1637 843 0 162 refentry.titlepage 279 810 2 163 chapter.titlepage.recto 67 810 12 164 book title.markup 1340 794 0 165 tr.attributes 6367 776 0 166 reference title.markup 455 771 1 167 table title.markup 1587 756 0 168 generate.col 1312 740 0 169 id.warning 3794 727 0 170 sect4.titlepage 210 693 3 171 blank.spans 3344 682 0 172 refentry 279 679 2 173 generate.colgroup 1681 656 0 174 title sect2.titlepage.recto.auto.mode 1398 633 0 175 glossterm glossterm 589 607 1 176 sect4 210 599 2 177 emphasis 428 596 1 178 part label.markup 291 571 1 179 thead|tfoot 386 567 1 180 group|arg group-or-arg 224 551 2 181 sect4.titlepage.recto 210 548 2 182 formal.object.heading 430 510 1 183 make.toc 91 492 5 184 * sect2.titlepage.recto.mode 1398 482 0 185 simplelist[@type='inline'] 184 479 2 186 procedure.step.numeration 439 475 1 187 list.itemsymbol 988 473 0 188 generate.class.attribute 1031 454 0 189 body.attributes 1333 451 0 190 appendix object.title.template 904 442 0 191 glossterm|firstterm title.markup 589 439 0 192 refpurpose 876 439 0 193 * sect1.titlepage.recto.mode 960 436 0 194 title sect1.titlepage.recto.auto.mode 960 430 0 195 refnamediv 279 425 1 196 inline.italicseq 608 392 0 197 chapter 67 386 5 198 * titleabbrev.markup 616 385 0 199 sect3 toc 1191 378 0 200 tbody 392 364 0 201 system.head.content 1333 361 0 202 acronym 2291 331 0 203 gentext.nav.next 2662 329 0 204 type 6764 325 0 205 informal.object 16 323 20 206 inline.boldmonoseq 271 316 1 207 replaceable 6476 316 0 208 appendix.titlepage.recto 11 315 28 209 next.itemsymbol 966 312 0 210 refsynopsisdiv 279 308 1 211 gentext.nav.prev 2662 306 0 212 pi.dbhtml_table-summary 1061 304 0 213 calculate.colspan 90 302 3 214 refsect1/title|refsect1/info/title 1354 301 0 215 gentext.nav.up 2640 299 0 216 command 6014 298 0 217 chapter.titlepage 67 295 4 218 sect2.titlepage.separator 1398 275 0 219 table.longdesc 392 271 0 220 gentext.nav.home 2662 267 0 221 simplelist.vert.row 210 259 1 222 gentext.startquote 1648 240 0 223 application 5403 236 0 224 pi.dbhtml_list-presentation 669 234 0 225 reference.titlepage.recto 3 231 77 226 set|book|part|preface|chapter|appendix |article |reference|refentry |book/glossary|article/glossary|part/glossary |book/bibliography|article/bibliography|part/bibliography |colophon 371 227 0 227 component.title 82 222 2 228 refsynopsisdiv title.markup 558 218 0 229 gentext.endquote 1648 217 0 230 figure|example|table|equation xref-to 316 213 0 231 part title.markup 334 209 0 232 pi.dbhtml_list-width 669 204 0 233 manvolnum 1204 203 0 234 sect4 toc 630 199 0 235 note|important|warning|caution|tip 726 198 0 236 pi.dbhtml_term-width 669 187 0 237 structname 3818 186 0 238 book|preface|chapter|appendix titleabbrev.markup 157 184 1 239 optional 331 184 0 240 part.titlepage.recto 8 171 21 241 sect1.titlepage.separator 960 170 0 242 procedure 26 169 6 243 productname 3131 169 0 244 user.footer.content 1332 167 0 245 dedication|acknowledgements|preface|chapter|appendix|article xref-to 211 162 0 246 part object.title.template 263 159 0 247 user.header.content 1332 159 0 248 simpara 338 158 0 249 user.head.content 1333 157 0 250 preface|chapter|appendix|article toc 157 156 0 251 title sect3.titlepage.recto.auto.mode 397 154 0 252 simplelist.vert 122 150 1 253 orderedlist 31 149 4 254 appendix 11 149 13 255 make-verbatim-recursive 346 147 0 256 step 187 146 0 257 * sect3.titlepage.recto.mode 397 146 0 258 user.footer.navigation 1332 141 0 259 orderedlist/listitem 142 140 0 260 step[not(./title)] title.markup 326 131 0 261 xref.xreflabel 606 121 0 262 refname 303 118 0 263 user.header.navigation 1332 117 0 264 link no.anchor.mode 355 114 0 265 dingbat 884 114 0 266 longdesc.uri 392 111 0 267 pi.dbhtml_cellspacing 392 106 0 268 filename 2428 104 0 269 email 67 102 1 270 pi.dbhtml_cellpadding 392 99 0 271 table 376 95 0 272 structfield 1800 92 0 273 option 2017 90 0 274 varname 1951 90 0 275 write.longdesc 392 88 0 276 floatstyle 432 88 0 277 reference 3 88 29 278 cmdsynopsis 51 84 1 279 part 8 83 10 280 sect3.titlepage.separator 397 83 0 281 title sect4.titlepage.recto.auto.mode 210 82 0 282 pi.dbhtml_table-width 392 82 0 283 phrase 48 80 1 284 * sect4.titlepage.recto.mode 210 78 0 285 * endterm 57 77 1 286 footnote/para[1]|footnote/simpara[1] 16 76 4 287 function/parameter 384 75 0 288 example 38 74 1 289 section|sect1|sect2|sect3|sect4|sect5 is.autonumber 1517 70 0 290 colspec.colnum 270 70 0 291 indexterm index-symbol-div 5 68 13 292 person.name.first-last 39 67 1 293 firstterm 589 67 0 294 refentrytitle 1207 67 0 295 figure|example|equation title.markup 133 66 0 296 simplesect.titlepage 19 66 3 297 literallayout 34 65 1 298 simplesect.titlepage.recto 19 64 3 299 make.lots 1 63 63 300 biblioentry 26 62 2 301 person.name.list 58 61 1 302 partintro 10 57 5 303 inline.boldseq 39 55 1 304 figure|example|table|equation is.autonumber 316 53 0 305 sect2/title |sect2/info/title |sect2info/title titlepage.mode 1398 52 0 306 appendix.titlepage 11 52 4 307 token 860 51 0 308 person.name 39 50 1 309 lineannotation 114 50 0 310 chapter is.autonumber 183 48 0 311 member 105 48 0 312 sect1/title |sect1/info/title |sect1info/title titlepage.mode 960 48 0 313 indexterm index-tertiary 7 46 6 314 part|reference toc 14 45 3 315 partintro.titlepage.recto 10 45 4 316 footnote 16 44 2 317 title chapter.titlepage.recto.auto.mode 67 44 0 318 sect5 8 42 5 319 book 1 42 42 320 sect4.titlepage.separator 210 41 0 321 simplesect 19 39 2 322 function/replaceable 247 39 0 323 parameter 979 39 0 324 formalpara/title|formalpara/info/title 17 39 2 325 symbol 664 39 0 326 part.titlepage 8 37 4 327 partintro.titlepage 10 34 3 328 preface label.markup 85 33 0 329 * remove-ids 29 33 1 330 text() make.verbatim.mode 29 33 1 331 sect5.titlepage 8 32 4 332 process.footnotes.in.this.chunk 23 32 1 333 group/arg 40 31 0 334 procedure object.title.template 36 30 0 335 biblioset/title|biblioset/citetitle bibliography.mode 24 30 1 336 substeps 13 29 2 337 preface 1 29 29 338 formalpara 17 29 1 339 procedure title.markup 62 28 0 340 process.menuchoice 18 28 1 341 / 1 28 28 342 callout 7 27 3 343 sect5.titlepage.recto 8 27 3 344 division.toc 12 26 2 345 step xref-to 9 26 2 346 informaltable 16 26 1 347 copyright bibliography.mode 5 26 5 348 indexterm index-see 34 25 0 349 listitem/simpara 41 25 0 350 step/title 28 25 0 351 refsect2/title|refsect2/info/title 85 25 0 352 systemitem 195 25 0 353 inline.superscriptseq 13 24 1 354 bibliography 2 24 12 355 simplelist[@type='vert'] 17 23 1 356 footnote process.footnoteprocess.footnote.mode 16 22 1 357 list.numeration 31 21 0 358 orderedlist-starting-number 31 21 0 359 output-orderedlist-starting-number 31 20 0 360 next.numeration 30 20 0 361 co callout-bug 14 20 1 362 envar 316 20 0 363 abstract|sidebar 1 20 20 364 sect3/title |sect3/info/title |sect3info/title titlepage.mode 397 19 0 365 chapter/title|chapter/chapterinfo/title titlepage.mode 67 18 0 366 biblioentry.label 26 18 0 367 reference.titlepage 3 18 6 368 bibliography|glossary toc 1 17 17 369 callout.arearef 7 17 2 370 biblioentry|bibliomixed xref-to 17 17 1 371 figure 2 17 8 372 userinput 271 17 0 373 format.sgmltag 6 17 2 374 part|reference xref-to 25 16 0 375 trademark 2 16 8 376 authorgroup bibliography.mode 20 16 0 377 publishername bibliography.mode 14 16 1 378 titleabbrev title.markup 21 15 0 379 index 1 15 15 380 biblioset bibliography.mode 24 15 0 381 book.titlepage.recto 1 15 15 382 * chapter.titlepage.recto.mode 67 15 0 383 foreignphrase 9 14 1 384 formalpara/para 17 14 0 385 optional[@role='tcl'] 8 14 1 386 bibliography title.markup 15 13 0 387 indexterm index-seealso 6 13 2 388 abbrev 1 13 13 389 footnoteref 4 13 3 390 pubdate bibliography.mode 11 13 1 391 blockquote 1 13 13 392 title titlepage.mode 4 13 3 393 pi.dbhtml_start 31 13 0 394 programlisting/emphasis 31 13 0 395 calloutlist 4 12 3 396 callout.arearefs 14 12 0 397 keycap 8 12 1 398 citerefentry 6 12 2 399 sgmltag|tag 6 12 2 400 bibliodiv 3 12 4 401 index title.markup 9 11 1 402 sect4/title |sect4/info/title |sect4info/title titlepage.mode 210 11 0 403 errorname 1 11 11 404 guisubmenu 3 11 3 405 title bibliography.mode 11 11 1 406 titleabbrev bibliography.mode 18 11 0 407 legalnotice titlepage.mode 1 11 11 408 callout-bug 14 10 0 409 comment|remark 1 10 10 410 honorific|firstname|surname|lineage|othername 78 10 0 411 book.titlepage 1 10 10 412 title simplesect.titlepage.recto.auto.mode 19 10 0 413 bibliography.titlepage 2 10 5 414 varlistentry xref-to 17 9 0 415 computeroutput 102 9 0 416 citetitle 10 9 0 417 keycombo 4 9 2 418 * reference.titlepage.recto.mode 3 9 3 419 make-verbatim 21 8 0 420 footnote table.footnote.mode 4 8 2 421 confdates bibliography.mode 6 8 1 422 preface.titlepage.recto 1 8 8 423 preface.titlepage 1 8 8 424 appendix is.autonumber 28 7 0 425 * appendix.titlepage.recto.mode 11 7 0 426 * simplesect.titlepage.recto.mode 19 7 0 427 gentext.nestedstartquote 2 6 3 428 ulink no.anchor.mode 34 6 0 429 co co 7 6 0 430 empty.table.cell 1 6 6 431 classname 25 6 0 432 author bibliography.mode 1 6 6 433 confgroup bibliography.mode 6 6 1 434 conftitle bibliography.mode 6 6 1 435 publisher bibliography.mode 14 6 0 436 title appendix.titlepage.recto.auto.mode 11 6 0 437 bibliography.titlepage.recto 2 6 3 438 part is.autonumber 20 5 0 439 sect5 toc 24 5 0 440 index toc 1 5 5 441 varlistentry/term xref-to 17 5 0 442 simplesect/title|simplesect/info/title titlepage.mode 19 5 0 443 prompt 141 5 0 444 menuchoice 5 5 1 445 comment[parent::answer|parent::appendix|parent::article|parent::bibliodiv| parent::bibliography|parent::blockquote|parent::caution|parent::chapter| parent::glossary|parent::glossdiv|parent::important|parent::index| parent::indexdiv|parent::listitem|parent::note|parent::orderedlist| parent::partintro|parent::preface|parent::procedure|parent::qandadiv| parent::qandaset|parent::question|parent::refentry|parent::refnamediv| parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection| parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4| parent::sect5|parent::section|parent::setindex|parent::sidebar| parent::simplesect|parent::taskprerequisites|parent::taskrelated| parent::tasksummary|parent::warning]|remark[parent::answer|parent::appendix|parent::article|parent::bibliodiv| parent::bibliography|parent::blockquote|parent::caution|parent::chapter| parent::glossary|parent::glossdiv|parent::important|parent::index| parent::indexdiv|parent::listitem|parent::note|parent::orderedlist| parent::partintro|parent::preface|parent::procedure|parent::qandadiv| parent::qandaset|parent::question|parent::refentry|parent::refnamediv| parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection| parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4| parent::sect5|parent::section|parent::setindex|parent::sidebar| parent::simplesect|parent::taskprerequisites|parent::taskrelated| parent::tasksummary|parent::warning] 1 5 5 446 division.title 8 5 0 447 bibliodiv/title 3 5 1 448 address bibliography.mode 10 5 0 449 isbn bibliography.mode 5 5 1 450 subtitle bibliography.mode 4 5 1 451 index.titlepage 1 5 5 452 gentext.nestedendquote 2 4 2 453 sect5/title |sect5/info/title |sect5info/title titlepage.mode 8 4 0 454 part make.part.toc 7 4 0 455 reference make.part.toc 3 4 1 456 refsect3/title|refsect3/info/title 8 4 0 457 appendix/title|appendix/appendixinfo/title titlepage.mode 11 4 0 458 date bibliography.mode 3 4 1 459 pagenums bibliography.mode 2 4 2 460 index.titlepage.recto 1 4 4 461 / make.verbatim.mode 21 4 0 462 guibutton 1 3 3 463 superscript 13 3 0 464 pubsnumber bibliography.mode 2 3 1 465 attribution 1 3 3 466 ln.or.rh.filename 1 3 3 467 title reference.titlepage.recto.auto.mode 3 3 1 468 title sect5.titlepage.recto.auto.mode 8 3 0 469 * make.verbatim.mode 5 3 0 470 copyright.years 1 2 2 471 guimenu 5 2 0 472 guimenuitem 5 2 0 473 preface/title titlepage.mode 1 2 2 474 edition bibliography.mode 4 2 0 475 productname bibliography.mode 1 2 2 476 volumenum bibliography.mode 1 2 2 477 * book.titlepage.recto.mode 4 2 0 478 sect5.titlepage.separator 8 2 0 479 * sect5.titlepage.recto.mode 8 2 0 480 gentext.space 16 1 0 481 sidebar title.markup 3 1 0 482 legalnotice title.markup 4 1 0 483 * is.autonumber 5 1 0 484 biblioentry|bibliomixed xref-to-prefix 17 1 0 485 biblioentry|bibliomixed xref-to-suffix 17 1 0 486 year[position()=last()] bibliography.mode 5 1 0 487 * titlepage.mode 5 1 0 488 year titlepage.mode 1 1 1 489 holder titlepage.mode 1 1 1 490 legalnotice/title titlepage.mode 1 1 1 491 title book.titlepage.recto.auto.mode 1 1 1 492 copyright book.titlepage.recto.auto.mode 1 1 1 493 legalnotice book.titlepage.recto.auto.mode 1 1 1 494 title preface.titlepage.recto.auto.mode 1 1 1 495 simplesect.titlepage.separator 19 1 0 496 * process.root 1 1 1 497 setindex |book/index |article/index |part/index 1 1 1 498 bibliography|glossary| qandaset|index|setindex label.markup 2 0 0 499 generate-index 1 0 0 500 * bibliography.mode 6 0 0 501 holder bibliography.mode 3 0 0 502 corpauthor titlepage.mode 1 0 0 503 book.titlepage.separator 1 0 0 504 corpauthor book.titlepage.recto.auto.mode 1 0 0 505 reference.titlepage.separator 3 0 0 506 * preface.titlepage.recto.mode 1 0 0 Total 9284691 29526473 Applying stylesheet took 295800 ms Saving result took 0 ms
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Tom Lane
Date:
I wrote: > Still sucks for me on an up-to-date RHEL6 box: about 1m5s to build oldhtml, > about 4m50s to build html, both starting after "make maintainer-clean" in > the doc/src/sgml/ subdirectory. However, speed may be the least of its problems. I just noticed that it's inserting commas at random places in syntax summaries :-(. For instance, the "overlay" entry in table 9.8 looks like overlay(string, placing string, from int [for int]) Neither comma belongs there according to the SGML source, and I don't see them in guaibausaurus' rendering of the page: https://www.postgresql.org/docs/devel/static/functions-string.html So I'm forced to the conclusion that I need a newer version of the toolchain and/or style sheets. If you've got any idea of just what needs to be updated, that would be real helpful. xsltproc itself is from "libxslt-1.1.26-2.el6_3.1.x86_64" but I'm unsure what packages contain relevant style sheets. regards, tom lane
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Peter Eisentraut
Date:
On 11/30/16 1:52 PM, Tom Lane wrote: > However, speed may be the least of its problems. I just noticed that it's > inserting commas at random places in syntax summaries :-(. For instance, > the "overlay" entry in table 9.8 looks like > > overlay(string, placing > string, from int [for int]) > > Neither comma belongs there according to the SGML source, and I don't see > them in guaibausaurus' rendering of the page: > https://www.postgresql.org/docs/devel/static/functions-string.html > > So I'm forced to the conclusion that I need a newer version of the > toolchain and/or style sheets. If you've got any idea of just what > needs to be updated, that would be real helpful. xsltproc itself > is from "libxslt-1.1.26-2.el6_3.1.x86_64" but I'm unsure what packages > contain relevant style sheets. OK, I got it. The component of concern is the DocBook XSL stylesheets, called docbook-style-xsl on RH-like systems (docbook-xsl on Debian). If it runs too slow, it's probably too old. Here you can see a list of available versions: http://docbook.sourceforge.net/release/xsl/ I noticed a significant slow-down with versions older than 1.76.1. And indeed CentOS/RHEL 6 comes with 1.75.2. Also, the issue with the extra commas mentioned above goes away with 1.78.0. Here is the trick why this isn't reproducible for some: The local stylesheet file stylesheet.xsl references http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl. If you have the docbook-style-xsl package installed, then this URL gets redirected to your local installation through the XML catalog mechanism.If you don't have the package installed locally,then xsltproc will download the stylesheet files from that actual URL and cache them locally. So if you have an old docbook-style-xsl version, you get old and slow behavior. If you uninstall it or just never installed it, you get the latest from the internet. If you don't want to mess with your local packages, you can also prevent the use of the XML catalog by setting the environment variable XML_CATALOG_FILES to empty (e.g., XML_CATALOG_FILES='' make html). There is some work to be done here to document this and make sure we wrap releases with appropriate versions and so on, but I hope this information can keep everyone moving for now. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Tom Lane
Date:
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > OK, I got it. The component of concern is the DocBook XSL stylesheets, > called docbook-style-xsl on RH-like systems (docbook-xsl on Debian). If > it runs too slow, it's probably too old. OK, I updated docbook-style-xsl to 1.79.1 from Fedora rawhide (building and installing that was quite painless btw, didn't need a pile of build dependencies like I'd feared it would take). The extraneous commas are gone, and the speed is better but still not really up to DSSSL speed: 1m44s (vs 1m5s with old toolchain). So there's some additional piece that needs fixing, but that's certainly the worst of it. regards, tom lane
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Pavel Stehule
Date:
2016-12-01 5:37 GMT+01:00 Tom Lane <tgl@sss.pgh.pa.us>:
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
> OK, I got it. The component of concern is the DocBook XSL stylesheets,
> called docbook-style-xsl on RH-like systems (docbook-xsl on Debian). If
> it runs too slow, it's probably too old.
OK, I updated docbook-style-xsl to 1.79.1 from Fedora rawhide (building
and installing that was quite painless btw, didn't need a pile of build
dependencies like I'd feared it would take). The extraneous commas are
gone, and the speed is better but still not really up to DSSSL speed:
1m44s (vs 1m5s with old toolchain). So there's some additional piece
that needs fixing, but that's certainly the worst of it.
It does much more intensive work with IO - I have feeling like there are intensive fsync.
Regards
Pavel
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Re: Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Alvaro Herrera
Date:
Pavel Stehule wrote: > It does much more intensive work with IO - I have feeling like there are > intensive fsync. You could prove that, by running "make html" under "strace -f -e trace=fsync" etc. I just tried that, and I don't see any fsync. I guess you could try other syscalls, or simply "-e trace=file". Doing the latter I noticed an absolutely stupid number of attempts to open file /usr/lib/libxslt-plugins/nwalsh_com_xslt_ext_com_nwalsh_saxon_UnwrapLinks.so which deserves a WTF. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
[HACKERS] Re: [COMMITTERS] pgsql: Build HTML documentation using XSLTstylesheets by default
From
Alexander Law
Date:
Hello Alvaro, It's caused by the condition <xsl:when test="function-available('suwl:unwrapLinks')">... in the simple.xlink template (docbook/stylesheet/docbook-xsl/xhtml/inline.xsl). (This test executed for each xlink (~ 90000 times)). Yes, it's inefficient but it doesn't affect build time (for me). You can try to apply the attached patch and measure the time with it. So If the performance is rather acceptable now I'd continue switch to XML, and get back to the performance issues after the switch. (epub generation is much more slow, and I have developed a patch to speed up it too.) Best regards, Alexander 01.12.2016 19:49, Alvaro Herrera wrote: > Pavel Stehule wrote: > >> It does much more intensive work with IO - I have feeling like there are >> intensive fsync. > You could prove that, by running "make html" under "strace -f -e > trace=fsync" etc. I just tried that, and I don't see any fsync. I > guess you could try other syscalls, or simply "-e trace=file". Doing > the latter I noticed an absolutely stupid number of attempts to open > file > /usr/lib/libxslt-plugins/nwalsh_com_xslt_ext_com_nwalsh_saxon_UnwrapLinks.so > which deserves a WTF. > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Attachment
Re: [HACKERS] Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Tom Lane
Date:
Alexander Law <exclusion@gmail.com> writes: > Hello Alvaro, > It's caused by the condition > <xsl:when test="function-available('suwl:unwrapLinks')">... > in the simple.xlink template > (docbook/stylesheet/docbook-xsl/xhtml/inline.xsl). (This test executed > for each xlink (~ 90000 times)). > Yes, it's inefficient but it doesn't affect build time (for me). > You can try to apply the attached patch and measure the time with it. For me, that reduces the "make html" time from 1m44s to 1m43s. regards, tom lane
Re: [HACKERS] Re: [COMMITTERS] pgsql: Build HTML documentation usingXSLT stylesheets by default
From
Peter Eisentraut
Date:
On 11/30/16 11:37 PM, Tom Lane wrote: > Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: >> OK, I got it. The component of concern is the DocBook XSL stylesheets, >> called docbook-style-xsl on RH-like systems (docbook-xsl on Debian). If >> it runs too slow, it's probably too old. > > OK, I updated docbook-style-xsl to 1.79.1 from Fedora rawhide (building > and installing that was quite painless btw, didn't need a pile of build > dependencies like I'd feared it would take). The extraneous commas are > gone, and the speed is better but still not really up to DSSSL speed: > 1m44s (vs 1m5s with old toolchain). So there's some additional piece > that needs fixing, but that's certainly the worst of it. I've done a few more tweaks, and now it actually runs faster for me than the old build. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: [HACKERS] Re: [COMMITTERS] pgsql: Build HTML documentation using XSLT stylesheets by default
From
Tom Lane
Date:
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > On 11/30/16 11:37 PM, Tom Lane wrote: >> OK, I updated docbook-style-xsl to 1.79.1 from Fedora rawhide (building >> and installing that was quite painless btw, didn't need a pile of build >> dependencies like I'd feared it would take). The extraneous commas are >> gone, and the speed is better but still not really up to DSSSL speed: >> 1m44s (vs 1m5s with old toolchain). So there's some additional piece >> that needs fixing, but that's certainly the worst of it. > I've done a few more tweaks, and now it actually runs faster for me than > the old build. For me it's now 1m35s, which is better than the last round but not quite up to the old speed. It's tolerable though. Thanks for hacking on it. regards, tom lane