[NTG-context] testing 32bit and 64bit versions in Win7 64bit

Hans Hagen pragma at wxs.nl
Sun Apr 26 16:02:52 CEST 2015


On 4/26/2015 12:19 PM, Pablo Rodriguez wrote:
> Dear list,
>
> I have the following sample:
>
>      \starttext
>      \dorecurse{10}{
>          \dorecurse{10}{
>              \dorecurse{10}{
>                  \dorecurse{10}{
>                      \input zapf\par}}}}
>      \stoptext
>
> I used it to test compilation speed from both 32bit and 64bit. The
> machine has an Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz processor with
> 8GB RAM running Win7 64bit.
>
> Compiling both with luajittex and --purgeall (more than once), sample
> results are:
>
>      2015.04.16 15:14 (32bit) - 153.959 seconds
>      2015.04.16 15:14 (64bit) - 154.908 seconds
>
> Shouldn’t the 64bit version be much faster or am I missing something?

It depends on how it is compiled, the mingw 64 bit version is somewhat 
faster than the ming32 bit (at least last time i tested which is long 
ago). The ming64 bit is somewhat faster than the native win 64 binary 
(which have more conservative compiler optimizations enabled).

Anyway, speed depends on many factors. On my laptop

\starttext
\testfeatureonce{10000}{\input zapf\par}
\stoptext

takes 57 sec for normal luatex, while

\edef\Zapf{\cldloadfile{zapf}}

\starttext
  \testfeatureonce{10000}{\Zapf\par}
\stoptext

takes 35 sec for normal luatex and 22sec for luajittex (faster lua vm 
but also less mem available).

Speeds depends on the speed of the console (true for each operating 
system as fonts matter), and a run from scite (aggressive buffering) is 
faster than from other editors that have a log pane. Console2 is faster 
than a traditional console (as one can set delays comparable to e.g. 
unix consoles). Here i use conemu64 when running from console (i run 
mostly from the editor anyway).

Also such measures don't mean that much as nothing really happens there, 
take:

\testfeatureonce{2000}{\null\page}

which takes the same amount of time in luatex and luajittex (and gives 
you the basic performance of the 2000 pages you render with your example.

I actually do lots of timing as I want context to be relatively fast. 
For example the metafun manual needs 21 sec (with several subruns, about 
17 without those), which is quite ok given the many graphics.

Fwiw, pdftex runs your test faster, and xetex about the same speed, 
although on a more complex document mkiv gains on mkii unless of course 
extra functionality not present in mkii kicks in.

(And if you want to process xml ... well, then mkiv is definitely faster.)

If you think that there's a bottleneck somewhere that shouldn't be, I 
can look into it when I'm bored.

A while ago I measured performance this way:

\usemodule[art-01]
\starttext
     \input tufte % simulate stupid one page output
\stoptext

On my few year old laptop (Intel Core i7-3840QM CPU @ 2.80GHz) with 
luajittex I then get 7000 jobs / hour, and when I run 6 threads in 
parallel I come to 36.000 jobs / hour. So on a decent server one can do 
a lot.

Also, if you really want speed, style writing also matters. It's no 
problem to write inefficient tex code.

> Many thanks for your help,
>
>
> Pablo
>


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list