From: James M. L. <llm...@gm...> - 2012-05-29 08:15:15
|
On Sun, May 27, 2012 at 9:00 AM, Nikodemus Siivola <nik...@ra...> wrote: > On 25 May 2012 12:39, James M. Lawrence <llm...@gm...> wrote: > > I've merged these patches, with one cleanup and one bugfix on top of > them. Many thanks! > > It would be good if you could double-check that my bugfix didn't cause > performance regressions for you: in my tests it actually showed up as > a trivial speedup, but you know what they say about lies and > benchmarks... I'm amazed that I tested MAP-INTO with 2 input sequences and with 0 input sequences -- each with vectors and lists -- but not with 1 input sequence. Thanks for catching that. Regarding the special case of 1 vector, my benchmark results are 195 ms -- no widetag dispatch / no special case 165 ms -- with widetag dispatch / no special case (current build a5f57fb) 120 ms -- no widetag dispatch / with special case 70 ms -- with widetag dispatch / with special case This for fixnum arrays on 32-bit SBCL. The four variants are attached. For floating-point types, the only one that really benefits from widetag dispatching is single-float on 64-bit SBCL, since that type is immediate, right? Everything else is boxed because the out-of-line MAP-INTO can only call the out-of-line version of the function passed. I feel a bit guilty for increasing the image size, but maybe it doesn't matter. |