ten thousand small processes
cswiger at mac.com
Sat Jun 28 11:13:34 PDT 2003
D. J. Bernstein wrote:
> Chuck Swiger writes:
>> If you'd like to implement your suggested changes, generate a patch
>> (preferably via 'diff -duw'), you may either submit it as a PR via the
>> 'send-pr' command, or you can post it to this list. It would be nice if
>> you performed some regression testing to confirm that your change works and
>> is beneficial not just for your specific circumstances, but for the general
>> case as well.
> Does FreeBSD have a suite of regression tests and speed tests, or would
> I have to make them up as I go along?
The FreeBSD makefile system will pass "make test" or "make check" to software
components which include such regression tests: that would apply to most of the
GNU stuff in /usr/src/gnu/*/* and anything in the ports collection which you're
familiar with. Timing the regression tests for gawk, flex, perl, python, etc
would make a good starting point.
A significantly more expensive regression test would be to follow the
instructions in "man release" against RELENG_4_8_0_RELEASE with MAKE_ISOS
enabled, and see whether the md5 checksums match. Should be yes, this is just a
preliminary step to verify that you can run the system-wide self-hosted build
and reproduce a known-valid result. And time this, if you please, say via
"nohup time make release RELEASETAG=RELENG_4_8_0_RELEASE ... "
Lather, rinse, repeat, only this time point "make release" against a CVS
repository containing your change and see whether your modified version of
malloc works in the sense that the build creates a working version of FreeBSD
that you can burn to CD and install from, presumably with all file checksums
except /usr/lib/libc.* identical? (ISO md5's won't match due to that.)
Also see whether the build goes faster, which would indicate that the change to
malloc() had a net positive effect over the set of small command-line utilities
like sh, make, cc, awk, sed, etc...things which more closely resemble the
Subject header of this thread than, say, Mozilla, emacs, X window managers, etc.
PS: "make release" will involve probably 20-40 hours of CPU time and probably 10
GB of free space, but a change to something as critical as malloc() means that
someone is going to perform the full regression. Or so I would expect...
More information about the freebsd-performance