chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] Argvector handling - maybe we could do better at t


From: Jörg F . Wittenberger
Subject: Re: [Chicken-hackers] Argvector handling - maybe we could do better at that
Date: Tue, 23 Feb 2016 21:01:17 +0100
User-agent: Mozilla/5.0 (X11; Linux armv7l; rv:38.0) Gecko/20100101 Icedove/38.4.0

Am 19.02.2016 um 13:59 schrieb Peter Bex:
> I'd be happy to hear if it gives good results, of course.

You did not expect earth shattering results, did you?

Here some numbers.  At this time only unit-benchmarks using the tests
from llrb-tree egg.

Numbers are execution time of (master / modified - master) in %:

                          inserts   reference
hash fixnum key           3.84      5.44
hash symbol key           1.83      -0.91
llrb fixnum key           9.84      5.06
llrb fixnum mutating      8.42      1.22
llrb (using comparators)  6.63      1.91
llrb symbol key           1.07      9.72
llrb string key           7.81      3.73


In words: with the exception of symbol-indexed hash tables I've got
between 1-10% performance increase on average for 10 runs of 10^6
operations using the same 10^6 random keys.

Some preliminary test using mixed load appear to confirm these sub-10%
gains.



Two patches attached.


1.) The first is _supposed_ to do no harm by itself at all.  It contains
all changes but ifdefs them back to backward compatible code.  You need
to apply this and compile a new chicken, which will produce code using
the modified argvector related macros.

At this time it might be a good idea to backup your chicken-boot and
make a new one.

Now changing the first line in chicken.h should make you chicken
actually use the modified argvector handling.

I ran successfully "make check" (and the benchmarks and my code) with
the modified version.

2.)  The second patch removes the transitional code.


Let me know if this causes any issue.

Cheers

/Jörg

Attachment: 0014-increase-reuseofargvector.patch
Description: Text Data

Attachment: 0015-removetransitionalcode.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]