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