ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
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
___________________________________________________________________________________

  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).