groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] groff performance in respect to hardware platform


From: Ralph Corderoy
Subject: Re: [Groff] groff performance in respect to hardware platform
Date: Thu, 24 Mar 2016 10:28:13 +0000

Hi Steve,

> I suppose another factor is that since the Linux kernel is built for
> parallelization, even if groff can only run on a single core, all the
> operating system services can run on other cores without interfering
> with groff's process. Or do I not know what I'm talking about here?

As others have said, the single program groff isn't multi-threaded code,
but if you give it the -V option then it will print the pipeline of
processes that it's running, and they potentially run on separate cores
at the same time.  Plus, as you say, all the other processes that want
to run, e.g. your kernel, desktop, editor, etc., aren't fighting with
the ones you're waiting for.

> When I typeset large books, there are some stages, like adjusting
> track kerning on a page, where I want to see immediate results on my
> viewer.

What's groff's output?  PostScript?  PDF?  What's the viewer?

> My current hardware uses a five-year-old four-core CPU. A section of
> text maybe 50 pages long will update in my viewer in less than two
> seconds. But trying to do this for a 250-page book is tedious. That's
> why I'm interested in processing speed.

Run a program like dstat(1), or vmstat(1), during that tedious 250-page
book and see what you can glean from the results, e.g. is it CPU bound,
and how many of your cores are used?

Here's me running `sha1sum /dev/urandom' on a four-core machine for
about eight seconds.  The CPU columns are your first consideration.
Here, 25% of time was spent by the system, i.e. kernel.  That's
urandom's pseudo-random-number generator toiling away, running one of
the four cores at max.  The 2% is sha1sum in user space totting up the
output.  The rest of that second core, and the other two are idle;  73%.

    $ dstat
    You did not select any stats, using -cdngy by default.
    --total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
    usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw 
      2   0  98   0   0|   0     0 |   0     0 |   0     0 | 123   356 
      2   0  98   0   0|   0     0 |   0     0 |   0     0 |  97   273 
      2   1  98   0   0|   0     0 |   0     0 |   0     0 | 134   429 
      2  17  81   0   0|   0     0 | 107B  173B|   0     0 | 300   202 
      2  24  74   0   0|   0    44k|   0     0 |   0     0 | 383   130 
      2  26  73   0   0|   0     0 | 107B  173B|   0     0 | 385   112 
      2  25  74   0   0|   0     0 |   0     0 |   0     0 | 362   126 
      2  24  74   0   0|   0     0 |   0     0 |   0     0 | 358    82 
      2  25  74   0   0|   0     0 |  60B   42B|   0     0 | 355    66 
      2  25  74   0   0|   0     0 |   0     0 |   0     0 | 364   138 
      2  24  74   0   0|   0     0 |   0     0 |   0     0 | 392   261 
      3  12  85   0   0|   0     0 |   0     0 |   0     0 | 262   359 
      1   0  99   0   0|   0     0 |   0     0 |   0     0 |  57    80 
      2   0  99   0   0|   0     0 |   0     0 |   0     0 |  55    74 

Cheers, Ralph.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]