1% language=us runpath=texruns:manuals/luametatex 2 3% \definefontfeature 4% [default] 5% [default] 6% [expansion=quality] 7 8% % \setupalignpass[none] 9% \setupalignpass[decent] 10% % \setupalignpass[quality] 11 12% \pushoverloadmode \let\cdef\edef \let\cdefcsname\edefcsname \popoverloadmode 13 14% \enabledirectives[backend.pdf.inmemory] 15 16% \setupalign[profile] 17% \enabletrackers[profiling.lines.show] 18 19% ------------------------ ------ ------------------ ------------------------ 20% 2019-12-17 32bit 64bit 2020-01-10 32bit 64bit 2020-11-30 32bit 64bit 21% ------------------------ ------------------------ ------------------------ 22% freebsd 2270k 2662k freebsd 2186k 2558k freebsd 2108k 2436k 23% openbsd6.6 2569k 2824k openbsd6.6 2472k 2722k openbsd6.8 2411k 2782k 24% linux-armhf 2134k linux-armhf 2063k linux-armhf 2138k 2860k 25% linux 2927k 2728k linux 2804k 2613k linux (?) 3314k 2762k 26% linux-musl 2532k 2686k 27% osx 2821k osx 2732k osx 2711k 28% ms mingw 2562k 2555k ms mingw 2481k 2471k ms mingw 2754k 2760k 29% ms intel 2448k 30% ms arm 3894k 31% ms clang 2159k 32% ------------------------ ------------------------ ------------------------ 33% 34% performance of mingw and native are getting close (small win for mingw) but 35% clang bins are still slower .. quite inconsistent differences between 32 and 36% 64 bit (not all compilers are the same version) 37 38% \enableautoglyphscaling % saves only a few instances ... no gain .. a few pages more 39 40% \enabletexdirective{vspacing.experimental} 41 42% \nopdfcompression 43 44% 20200509 : 258 pages 45% 46% my 2013 i7 laptop with windows : 11.8 sec mingw64 47% raspberry pi 64 bit with ssd : 39.5 sec gcc 9.2 48% idem with native bin : 38.5 sec 49% idem overclocked f=2000/v=6 : 31.5 sec 50% 51% 20200526 : 258 pages 52% mingw all in: 10.9 / rpi 32 bit: 33.1 53 54% 20200610 : 258 pages 55% mingw all in: 10.6 56 57% 20201204 : 260 pages 58% mingw all in: 10.0 59 60% 20201204 : 262 pages 61% mingw all in: 9.9 62 63% 20200720 : 258 pages / all in 64% 65% mingw : 10.6 (sometimes less) 66% rpi 32 : 32.3 67% rpi 64 : 26.0 (overclocked) 68% amd 10 fitlet : 28.2 69 70% 20210812 : 298 pages 71% mingw : 9.7 72 73% 20210903 : 300 pages 74% mingw : 9.6 75 76% 20210916 : 300 pages 77% mingw : 9.4 (9.25 with LTO, 9.75 native) 78 79% But speed can differ a bit per compilation (upto .5 seconds maybe due to how 80% compiled code is organized which might influence caching. Who knows ... (or 81% cares). For instance at 20200407 I measured 10.9 seconds after some new low level 82% metapost magic was added but who knows if that was the reason, because mp 83% processing is already fast. A week later, at 20200415, a by then 254 page file 84% took 10.5 seconds, that is, we were at exactly 24 pages per second but after 85% switching to gcc9 it dropped again. In december 2020, with IPO enabled I crossed 86% the 26 pps barrier and went below 10 seconds but that was also after some further 87% cleanup in \LMTX. Mid August 2021 I measured over 30 pps but not all is due to 88% the engine I guess. End august we were are over 31 pps so it's not getting worse. 89 90% (This means that on a modern desktop we probably can get around 100 pps on a 91% manual like this but, always using laptops, I don't have access to machines like 92% that. A modern laptop probably could perform over 50 pps.) 93 94% msvc 1899k (2% slower than mingw) 95% msvc /GL 2297k (similar to mingw) 96% msvc /GL /Ob3 2847k (not faster than /GL) 97% msvc /Ob3 2052k (slower than /Ob2) 98% msvc /Ob1 1763k (slower than /Ob2) 99% clang 2460k (15% slower than mingw) 100 101% Thanks to sebastian.miele@gmail.com for close reading the manual and sending 102% fixes. 103 104% \listcallbackmode0 105 106% 290 pages, 10.8 sec, 292M lua, 99M tex, 158 instances 107% 290 pages, 9.5 sec, 149M lua, 35M tex, 30 instances 108 109% On the 2018 Dell 7520 Precission Xeon laptop runtime for 322 pages is now exactly 110% 8 seconds (just below 40 pages per second), we talking July 16, 2022. 111% 112% At the first of August 2022 the (slightly reorganized and updated) manual counted 113% 350 pages and took 8.6 seconds to process (some 41 pages per second), so we're 114% rather stable. End of 2022 processing that amount of pages dropped somewhat 115% (occasionally under 8.3 seconds for 356 pages with little other system load). In 116% means that 43 pages per seconds is now the new normal but that might of course 117% become less again as we evolve. 118 119% End Feburari 2023 I observed 8.2 seconds for 360 pages and making a format needed 120% 1.9 seconds instead if the usual 2.1 but that can be a side effect of the terminal 121% because the amount of output which is sensitive for refresh delays set. The new 122% target is now 50 pages per second for this manual but on this laptop that is 123% unlikely to happen any time soon. With tabulateusesize and tabulatesparseskips 124% experiments enabled we needed 8.1 second and 44.3 pps.% 368 pages may/june 2023: 125% 126% no constant definitions : 8.55 127% constant \*!whatever : 8.47 128% also constant \current* : 8.36 129 130% \enableexperiments [tabulateusesize] 131% \enableexperiments [tabulatesparseskips] 132 133% 2023-07-10: context --make > temp.log (after a few times so with cached files) 134% 135% 1.90 sec including mtxrun 136% 1.65 sec tex only 137% 1.45 sec without saving format 138 139% 20230714 : 368 pages 140% 141% mingw : 8.4 (we gained more that for the amd ... more cache and faster mem) 142% rpi 64 : (hdd, not overclocked) 143% amd 10 fitlet : 30.9 12pps (we gained over 25% compared to the 268 page manual) 144 145% \ifdefined\linebuffering \linebuffering \fi 146 147% \linebuffering 148 149\enableexperiments[fonts.compact] 150% \enableexperiments[fonts.accurate] 151 152% \enabledirectives[fonts.injections.method=advance] % tricky ... not all xoffsets are advance robust 153 154% This is only for testing, use the command line (or banner line) instead. 155% 156% \startluacode 157% lpdf.setencryption { 158% ownerpassword = "password", 159% userpassword = " ", 160% permissions = "print,quality" 161% } 162% \stopluacode 163 164\pushoverloadmode \unprotect 165 % test code 166\protect \popoverloadmode 167 168\enabletrackers[system.usage=summary] 169 170\environment luametatex-style 171\environment luametatex-private 172 173\startdocument 174 [manual=LuaMeta\TeX, 175 %status=experimental, 176 version=status.luatex_verbose] 177 178\component luametatex-titlepage 179\component luametatex-firstpage 180 181\startfrontmatter 182 \component luametatex-contents 183 \component luametatex-introduction 184\stopfrontmatter 185 186\startbodymatter 187 \component luametatex-modifications 188 \component luametatex-lua 189 \component luametatex-enhancements 190 \component luametatex-fonts 191 \component luametatex-languages 192 \component luametatex-math 193 \component luametatex-building 194 \component luametatex-nodes 195 \component luametatex-callbacks 196 \component luametatex-tex 197 \component luametatex-metapost 198 \component luametatex-pdf 199 \component luametatex-libraries 200 \component luametatex-primitives % this generates a list 201 % \component luametatex-rejected % local file 202\stopbodymatter 203 204\startbackmatter 205 \component luametatex-codes 206 \component luametatex-registers 207 \component luametatex-statistics 208 \component luametatex-remarks 209\stopbackmatter 210 211\stopdocument 212 213 |