onandon-speed-000.tex /size: 3296 b    last modification: 2020-07-01 14:35
1% \startenvironment onandon-speed-000
2
3% \dontcomplain
4
5\edef\sapolsky{\ignorespaces\cldloadfile{sapolsky}\removeunwantedspaces}
6
7\startluacode
8
9    function document.ResetSample(title)
10        document.elapsed = {
11            title = title,
12            times = { },
13        }
14    end
15
16    function document.RegisterSample(bodyfont,elapsed)
17        table.insert(document.elapsed.times, {
18            bodyfont = bodyfont,
19            elapsed  = elapsed
20        })
21    end
22
23    function document.SaveSample()
24        if LUATEXENGINE == "luajittex" then
25            table.save(tex.jobname.."-jit.lua",document.elapsed)
26        else
27            table.save(tex.jobname..".lua",document.elapsed)
28        end
29    end
30
31    function document.ShowSample(filename)
32     -- context.typefile(filename..".tex")
33        local elapsed    = table.load(file.nameonly(filename)..".lua")
34        local elapsedjit = table.load(file.nameonly(filename).."-jit.lua")
35        if elapsed and elapsedjit then
36            context.testpage { 6 }
37            context.starttabulate { "|l|l|lp|" }
38            context.HL()
39            context.NC() context.formatted.rlap("\\bf %s",elapsed.title)
40            context.NC()
41            context.NC()
42            context.NC() context.NR()
43            context.HL()
44            local times    = elapsed.times
45            local timesjit = elapsedjit.times
46            for j=1,#times do
47                local t    = times[j]
48                local tjit = timesjit[j]
49                context.NC() context(t.bodyfont)
50                context.NC() context(t.elapsed)
51                context.NC() context(tjit.elapsed)
52                context.NC() context.NR()
53            end
54            context.HL()
55            context.stoptabulate()
56        end
57    end
58
59    function document.SampleTitle(filename)
60        local elapsed = table.load(filename..".lua")
61        if elapsed then
62            context(elapsed.title)
63        end
64    end
65\stopluacode
66
67\appendtoks
68    \ctxlua{document.SaveSample()}%
69\to \everystoptext
70
71\def\SampleCount{1000}
72\def\SampleCount{100}
73
74\unexpanded\def\RegisterSample#1%
75  {\ctxlua{document.RegisterSample("#1","\elapsedtime")}}
76
77\unexpanded\def\ProcessSample#1%
78  {\page
79   \ctxlua{document.ResetSample("#1")}%
80   \resettimer \Sample {modern}      \RegisterSample {modern}
81   \resettimer \Sample {pagella}     \RegisterSample {pagella}
82   \resettimer \Sample {termes}      \RegisterSample {termes}
83   \resettimer \Sample {cambria}     \RegisterSample {cambria}
84   \resettimer \Sample {dejavu}      \RegisterSample {dejavu}
85   \resettimer \Sample {ebgaramond}  \RegisterSample {ebgaramond}
86   \resettimer \Sample {lucidaot}    \RegisterSample {lucidaot}
87   \page }
88
89\unexpanded\def\ProcessBaselineSample#1%
90  {\page
91   \ctxlua{document.ResetSample("#1")}%
92   \resettimer \Sample {baseline} \RegisterSample {baseline}
93   \page }
94
95\unexpanded\def\Sample#1%
96  {\setupbodyfont[#1]}
97
98\unexpanded\def\ShowSample#1%
99  {\ctxlua{document.ShowSample("#1")}}
100
101\unexpanded\def\SampleTitle#1%
102  {\ctxlua{document.SampleTitle("#1.lua")}}
103
104\continueifinputfile{onandon-speed-000.tex}
105
106\starttext
107
108\ProcessSample{bodyfont}
109
110\setbox\scratchbox\vbox{\hsize1pt\tttf\sapolsky} \getnoflines{\htdp\scratchbox}
111
112\writestatus{!!!!!!}{noflines : \the\noflines}
113
114\stoptext
115
116% \stopenvironment
117