luametatex.tex /size: 7632 b    last modification: 2024-01-16 09:02
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=\cldcontext{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