[NTG-context] bottlenecks

Rik Kabel ConTeXt at rik.users.panix.com
Sat Dec 17 01:05:27 CET 2022


On 2022-12-16 17:07, Hans Hagen via ntg-context wrote:
> On 12/16/2022 10:08 PM, Rik Kabel via ntg-context wrote:
>> Hans,
>>
>> Here are the stats for a 346 page book. Fonts are all cached. 
>> Compilation is via a make file which processes this as:
>>
>>     context --noconsole --overloadmode=error --batchmode --nonstopmode
>>     --nosynctex misquotation_bodyonly.mkvi > nul
>>
>> and is run under W11 x64 on an i7-8550U. The only tables are contents 
>
> ok, not the fastest i7 out there, more the tablet one, right?
>
>> and acronyms, and such, nothing complex. No graphics. Compact fonts 
>> are enabled.
>
> can you check compact mode .. when compact fonts are not enabled, do 
> you get the same
>
> >     mkiv lua stats  > font engine: otf 3.131, afm 1.513, tfm 1.000, 84
> >     instances, 67 shared in backend, 3 common vectors, 64 common 
> hashes,
>
> i wonder why so many instances
>
>>     mkiv lua stats  > node memory usage: 6869 attribute, 4608 dir, 4612
>>     glue, 84 gluespec, 2304 glyph, 3072 hlist, 3 kern, 647 mathspec, 5
>>     penalty, 2 temp
>
> this is suspicious ... i fixed a dir leak recently but having 3K boxes 
> dangling ...
>
>> In neither case do the sum of the times listed in the stats come 
>> close to the total runtime (in the second example, 14.774 seconds of 
>> 23.057 are accounted), so there are other unidentified processes 
>> involved.
>
> these stats are an indication because below a threshold (time 
> accuracy) nothing is measured
>
>> In any case, the processing time has been improving greatly over the 
>> last couple of years, and LMTX is significantly faster that MkIV in 
>> all of my work.
> sure, that is to be expected although it depends a bit on the use 
> case, for instance the backend is slower (but does much more) so 
> initially lmtx was actually slower but at some point we started 
> gaining (and i can probably gain a little more)
>
> i wonder why directions bump time because much of what tex does is 
> sort of agnostic for directions (the backend needs more time but i 
> don't see that in your stats)
>
> when you run with --profile you get a much slower run but might get 
> some info from the extra log
>
> Hans
>

The laptop was hot stuff in 2017 with 16GB RAM, 1TB SSD, and a 4K touch 
screen -- today, not so hot. Due to be replaced next year.

Here are the numbers without compact fonts enabled. Not much difference.

    mkiv lua stats  > used config file:
    selfautoparent:/texmf/web2c/texmfcnf.lua
    mkiv lua stats  > used cache path:
    C:/ConTeXt_LMTX/tex/texmf-cache/luametatex-cache/context/5fe67e0bfe781ce0dde776fb1556f32e
    mkiv lua stats  > resource resolver: loadtime 0.045 seconds, 1 scans
    with scantime 0.037 seconds, 0 shared scans, 37 found files, scanned
    paths: C:/Users/micro/texmf
    mkiv lua stats  > stored bytecode data: 507 modules (0.243 sec), 106
    tables (0.016 sec), 613 chunks (0.259 sec)
    mkiv lua stats  > traced context: maxstack: 4107, freed: 2452,
    unreachable: 1655
    mkiv lua stats  > cleaned up reserved nodes: 78 nodes, 8 lists of 438
    mkiv lua stats  > node memory usage: 6869 attribute, 4608 dir, 4612
    glue, 84 gluespec, 2304 glyph, 3072 hlist, 3 kern, 647 mathspec, 5
    penalty, 2 temp
    mkiv lua stats  > node list callback tasks: 13 unique task lists, 37
    instances (re)created, 87130 calls
    mkiv lua stats  > h-node processing time: 3.454 seconds including kernel
    mkiv lua stats  > inserted spaces in output: 106016
    mkiv lua stats  > attribute processing time: 0.295 seconds front-
    and backend
    mkiv lua stats  > driver time: 2.487 seconds
    mkiv lua stats  > used backend: pdf
    mkiv lua stats  > jobdata time: 0.290 seconds saving, 0.053 seconds
    loading
    mkiv lua stats  > callbacks: file: 34388, saved: 191153, direct: 8,
    function: 173574, value: 345, message: 0, bytecode: 613, late 0,
    total: 400081 (1184 per page)
    mkiv lua stats  > randomizer: resumed with value 0.88558194690977
    mkiv lua stats  > v-node processing time: 0.250 seconds
    mkiv lua stats  > loaded patterns: agr:gr:62 cn::58 de::3 deo:de:9
    en::1 es::64 fr::63 it::66 la::67 ru::22, load time: 0.000
    mkiv lua stats  > structure elements: 28145 element chains identified
    mkiv lua stats  > interactive elements: 3982 references, 4873
    destinations
    mkiv lua stats  > margin data: 497 entries, 0 pending
    mkiv lua stats  > loaded fonts: 14 files: antykwatorunska-bold.otf,
    antykwatorunskacond-bold.otf, antykwatorunskacond-regular.otf,
    libertinusmath-regular.otf, libertinusmono-regular.otf,
    libertinussans-italic.otf, libertinussans-regular.otf,
    libertinusserif-italic.otf, libertinusserif-regular.otf,
    libertinusserif-semibold.otf, zentb___.otf, keteraramtsova.ttf,
    msjh.ttc, times.ttf
    mkiv lua stats  > font engine: otf 3.131, afm 1.513, tfm 1.000, 84
    instances, 67 shared in backend, 3 common vectors, 64 common hashes,
    load time 1.076 seconds
    mkiv lua stats  > text directions: 4.987 seconds
    mkiv lua stats  > math tweaking time: 0.187 seconds, 18 math goodie
    tables
    mkiv lua stats  > pdf annotations: 3982 links (3982 unique), 0 special
    mkiv lua stats  > font embedding time: 0.195 seconds, 13 fonts
    mkiv lua stats  > result saved in file: misquotation_bodyonly.pdf,
    compresslevel 1, objectcompresslevel 3
    mkiv lua stats  > positions: 4034 collected, 1722 deltas, 4025
    shared partials, 112 partial entries
    mkiv lua stats  > used platform: win64, type: windows, binary
    subtree: texmf-win64
    mkiv lua stats  > used engine: luametatex version: 2.1004,
    functionality level: 20221214, format id: 679, compiler: gcc
    mkiv lua stats  > tex properties: 740852 hash slots used of 2097152,
    51846 control sequences, approximate memory usage: 73 MB
    mkiv lua stats  > lua properties: engine: lua 5.4, used memory: 314
    MB, ctx: 288 MB, max: 288 MB, symbol mask: utf (τεχ)
    mkiv lua stats  > runtime: 23.731 seconds, 338 processed pages, 338
    shipped pages, 14.243 pages/second

I do have some macros that are likely to make you (and others who are 
more adept at such things) cringe. Happy to share more of the source if 
it is helpful.

I have also run with --profile and have attached that log as well as the 
complete execution log (zipped together as logs.zip).

-- 
Rik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20221216/70f29950/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: logs.zip
Type: application/x-zip-compressed
Size: 69783 bytes
Desc: not available
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20221216/70f29950/attachment-0001.bin>


More information about the ntg-context mailing list