> End result: I guess I'm a little surprised that the difference is that clear
> -- does a function call really take 10ns? I'm also surprised that the
> layered C version has significantly more jitter than the non-layered version;
> I can't really explain that. I'd welcome anyone else replicating experiment
> and/or eyeballing my code to make sure I didn't bork something up.

That is significantly higher than I would have expected for a single
function call. When I did all the component tests a couple years ago, a
function call into a shared library was about 5ns on an Intel Xeon
(pre-Core 2 design) and about 2.5 on an AMD Opteron.