On 12/16/2008 11:37 AM, Hans Hagen wrote:
> Lars Huttar wrote:
> 
>> We have close to 7000 mpgraphics, and they add about 15 minutes to the
>> run time.
> 
> most of them are the same so reusing them made sense
> 
>> But the run time was already quite long before we started using those.
>>
>>> - define fonts beforehand
>>
>> OK, we will look into this. I'm sure Jelle knows about this but I'm a
>> noob. I'm pretty sure we are not *loading* fonts every time, but maybe
>> we're scaling fonts an unnecessary number of times.
>> For example, we have the following macro, which we use thousands of
>> times:
>>     \def\LN#1{{\switchtobodyfont[SansB,\LNfontsize]{#1}}}
> 
> indeed this will define the scaled ones again and again (whole sets of
> them since you use a complete switch); internall tex reuses them but it
> only know so when they're defined
> 
>> Would it help much to instead use
>>     \definefont[SansBLN][... at \LNfontsize]
>> and then
>>     \def\LN#1{{\SansBLN{#1}}}
>> ?
> 
> indeed:
> 
> \definefont[SansBLN][... at \LNfontsize]
> 
> but no extra { } needed:
> 
> \def\LN#1{{\SansBLN#1}}

Thanks, we will try this.
(Jelle, since you have worked with this a lot longer than I have, please
stop me if you have concerns about my making this sort of change.)

>>> - use unique mpgraphic when possible
>>
>> I would be interested to know if this is possible in our situation. Most
>> of our mpgraphics are due to wanting thick-and-thin or single-and-double
>> borders on tables, which are not natively supported by the ConTeXt table
>> model.
> 
> i sent jelle the patched files

OK, I'll look to hear from him. Are these patches to support these kinds
of borders on tables, thus no longer needing to use MPgraphics?

>> The advice I received said to define each mpgraphic using
>> \startuseMPgraphic (we have about 18 of these), associate them with
>> overlays using \defineoverlay (again, we have 18), and then use them in
>> table cells using statements like
>>     \setupTABLE[c][first][background={LRtb}]
>> Empirically, this seems to end up using one mpgraphic per table cell,
>> hence our thousands of mpgraphics. I don't know why a new mpgraphic
>> would be created for each cell. Can someone suggest a way to avoid this?
> 
> metafun manual: unique mp graphics

Great...
I converted our useMPgraphics to uniqueMPgraphics. This reduced our
number of mpgraphics from 7000 to 800!

Unfortunately the result doesn't look quite right... but since we may
not need to use mpgraphics anyway thanks to your patches, I'll hold off
on debugging the result.

>>> i changes the definitions a bit and now get 5 pages per second on my
>>> laptop in luatex; xetex processes the pages a bit faster but spends way
>>> more time on the mp part
>>
>> My last run gave about 0.25 pages per second on our fastest server, when
>> taking into account multiple passes; that comes out to about 2 pps for
>> --once.
> 
> the patched files do 5-10 pps on my laptop (was > 1 sec pp) so an
> improvement factor of at least 5 is possible
> 
> there are probably other optimizations possible but i cannot spent too
> much time on it

Thanks for all your help thus far.

Lars

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to