nmh-workers
[Top][All Lists]
Advanced

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

Re: [Nmh-workers] What OS/Architecture Do You Run nmh On?


From: Bakul Shah
Subject: Re: [Nmh-workers] What OS/Architecture Do You Run nmh On?
Date: Mon, 12 Feb 2018 19:06:49 -0800

On Mon, 12 Feb 2018 15:26:18 -0800 Paul Vixie <address@hidden> wrote:
> 
> Ken Hornstein wrote:
> ...
> > you said:
> >
> >> And the programs I tried worked fine. Running best scan time
> >> for 200K messages, scan+gc takes 13.5 seconds while the
> >> regular scan 7.4 seconds.
> >
> > To me a performance penalty of 50% is not worth it, but I'd be willing
> > to hear from others.
> 
> the various design choices made in MH and in many cases still present in 
> NMH were all performance-related. consider the old "MATCHC" logic as an 
> example, or the reuse of buffers today vs freeing and re-allocating.

On FreeBSD-386 I get more consistent results. The 46% increase
in time for scan and 28% for pick can probably be recovered
with profiling directed optimizations.  But there are at least
three reasons why this unlikely to happen.
1) I will have to make it happen and I don't have a strong
   desire to work on the current code base.
2) libgc will have to work on every platform of interest and
   it gave me problems on two platforms I tried. I have even less
   of a desire to fix libgc issues.
3) People will find that the same optimizations help the
   non-gc case and you guys will move the goalposts!

non-gc:
$ /usr/bin/time ./scan 1:30000 >/dev/null
       11.67 real         4.69 user         1.53 sys
$ /usr/bin/time ./scan 1:30000 >/dev/null
       11.29 real         4.80 user         1.42 sys
$ /usr/bin/time ./scan 1:30000 >/dev/null
       11.29 real         4.69 user         1.53 sys

$ /usr/bin/time ./pick -from a -and -to b 1:30000 >/dev/null
golang/pick.* .
       13.01 real         6.62 user         1.31 sys
$ /usr/bin/time ./pick -from a -and -to b 1:30000 >/dev/null
golang/pick.* .
       13.00 real         6.63 user         1.29 sys
$ /usr/bin/time ./pick -from a -and -to b 1:30000 >/dev/null
golang/pick.* .
       13.12 real         6.63 user         1.29 sys


gc:
$ /usr/bin/time ./scan 1:30000 >/dev/null
       16.30 real         9.62 user         1.54 sys
$ /usr/bin/time ./scan 1:30000 >/dev/null
       16.98 real        10.19 user         1.53 sys
$ /usr/bin/time ./scan 1:30000 >/dev/null
       16.82 real        10.15 user         1.48 sys

$ /usr/bin/time ./pick -from a -and -to b 1:30000 >/dev/null
       16.59 real         9.89 user         1.61 sys
$ /usr/bin/time ./pick -from a -and -to b 1:30000 >/dev/null
       16.63 real        10.04 user         1.36 sys
$ /usr/bin/time ./pick -from a -and -to b 1:30000 >/dev/null
       16.73 real        10.10 user         1.38 sys



reply via email to

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