On Mon, 12 Feb 2018 15:26:18 -0800 Paul Vixie <paul@redbarn.org> 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
--
Nmh-workers
https://lists.nongnu.org/mailman/listinfo/nmh-workers