On 11/19/2024 11:38 PM, Thomas A. Schmitz wrote:
Hi,
a couple of years ago, I asked whether it was possible to typeset the information about runtime that I get at the end of the context run. Hans provided an answer (https://www.mail-archive.com/ntg-context@ntg.nl/ msg90554.html):
it's in the log file:
local data = io.loaddata("oeps.log") or ""
local pattern = "> runtime: ([%d%.]+) seconds, ([%d]+) processed pages, ([%d]+) shipped pages, ([%d%.]+) pages/second"
local r, n, s, p = string.match(data,pattern)
print(r,n,s,p)
The information I get this way is inaccurate. The runtime (in seconds) I see at the end of the run on the terminal:
5.635
vs. the value I get with the code:
0.660260200500488
I'm not sure whether something has changed with lmtx or if this was the case before (the log file is being written to during the run, so this may explain the difference?). So my question from then still stands: is it possible to extract the real runtime somehow? I would like to write it to a different file at the end of the run. What would be the best way to do this?
Ah, you're trying to locate bottlenecks ... you need to register timing pretty late, like this: \startluacode luatex.wrapup ( function() -- print("saving runtime in foo.txt") io.savedata("foo.txt",statistics.elapsedtime(lua.getruntime())) -- local t = { runtime = statistics.elapsedtime(lua.getruntime()), mytime = statistics.elapsedtime("foo"), } print("saving runtime in foo.lua") table.save("foo.lua",t) -- end ) \stopluacode \starttext % it's showtime: runtime : \cldcontext { io.loaddata("foo.txt") } mytime: \cldcontext { ( table.load("foo.lua") or { } ).mytime } % let's waste some time: \ctxlua{statistics.starttiming("foo")} \dorecurse{500}{ \glyphxscale\numexpr1000-#1\relax \samplefile{knuthmath} \blank } \ctxlua{statistics.stoptiming("foo")} \stoptext Wikifying a better example probably takes more time than this run, Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------