From: Hans Hagen <j.hagen@xs4all.nl>
To: ntg-context@ntg.nl
Subject: [NTG-context] Re: save runtime information
Date: Wed, 20 Nov 2024 09:10:29 +0100 [thread overview]
Message-ID: <f8a6abc8-8da6-4976-8aa5-164e8cc657e7@xs4all.nl> (raw)
In-Reply-To: <76a670b3-72f8-4fb7-87a0-db3b52fa9160@uni-bonn.de>
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
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___________________________________________________________________________________
next prev parent reply other threads:[~2024-11-20 8:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-19 22:38 [NTG-context] " Thomas A. Schmitz
2024-11-20 8:10 ` Hans Hagen [this message]
2024-11-20 21:10 ` [NTG-context] " Thomas A. Schmitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f8a6abc8-8da6-4976-8aa5-164e8cc657e7@xs4all.nl \
--to=j.hagen@xs4all.nl \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).