On Mon, 12 Feb 2018 15:26:18 -0800 Paul Vixie <p...@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