[OPEN-ILS-DEV] PATCH revised: osrf_hash.[ch] (performance tweak)
Mike Rylander
mrylander at gmail.com
Fri Apr 11 11:38:01 EDT 2008
On Sat, Mar 22, 2008 at 11:53 PM, Scott McKellar <mck9 at swbell.net> wrote:
> --- Scott McKellar <mck9 at swbell.net> wrote:
>
> > This patch boosts the performance of an osrfHashIterator a bit, by
> > reusing the "current" buffer whenever possible instead of freeing and
> > reallocating it on every iteration.
>
> The patch attached here supercedes and replaces the patch I posted
> a couple of days ago.
Arg ... I applied the earlier one. I've now applied the change that
this patch provides. Sorry folks ... moving on...
>
> The change: in osrfHashIteratorReset, I had placed a nul in the
> first character of itr->current. However it is possible to call
> this function when itr->current is still NULL. Oops.
>
> In the revised patch, I apply the nul only if itr->current is
> not NULL.
>
> ----------------------
>
> I have experimented with a partial implementation of the ideas I
> wrote about earlier today, using a doubly linked list instead of
> an osrfStringArray to represent the sequence in which the entries
> were added.
>
> I modified my benchmark program to compare two different ways to
> traverse an osrfHash: the old way (by indexing through the
> osrfStringArray and doing hashed lookups) and the new way (using
> a linked list).
>
> The new kind of traversal is consistently about 40 times as fast.
>
> Scott McKellar
> http://home.swbell.net/mck9/ct/
>
> Developer's Certificate of Origin 1.1 By making a contribution to
> this project, I certify that:
>
> (a) The contribution was created in whole or in part by me and I
> have the right to submit it under the open source license indicated
> in the file; or
>
> (b) The contribution is based upon previous work that, to the best
> of my knowledge, is covered under an appropriate open source license
> and I have the right under that license to submit that work with
> modifications, whether created in whole or in part by me, under the
> same open source license (unless I am permitted to submit under a
> different license), as indicated in the file; or
>
> (c) The contribution was provided directly to me by some other person
> who certified (a), (b) or (c) and I have not modified it; and
>
> (d) In the case of each of (a), (b), or (c), I understand and agree
> that this project and the contribution are public and that a record
> of the contribution (including all personal information I submit
> with it, including my sign-off) is maintained indefinitely and may
> be redistributed consistent with this project or the open source
> license indicated in the file.
--
Mike Rylander
| VP, Research and Design
| Equinox Software, Inc. / The Evergreen Experts
| phone: 1-877-OPEN-ILS (673-6457)
| email: miker at esilibrary.com
| web: http://www.esilibrary.com
More information about the Open-ils-dev
mailing list