|
|
Message-ID: <20110626103057.GW27421@port70.net>
Date: Sun, 26 Jun 2011 12:30:58 +0200
From: Szabolcs Nagy <nsz@...t70.net>
To: musl@...ts.openwall.com
Subject: Re: Completeness status of musl
* Szabolcs Nagy <nsz@...t70.net> [2011-06-25 20:31:06 +0200]:
> tsearch:
> i provided two different implementations: plain binary
> tree (as used in bsd) and a self balancing avl tree
> (glibc seems to use rb-tree)
>
> the avl tree implementation uses recursive functions
> (max depth of an avl tree with 2^42 nodes is 60)
i was not sure about the performance of this
so i did some benchmarks now
it turns out my avl tree is a little bit faster at word
counting than glibc rb-tree
i had to change scanf("%s", buf) to custom getword(buf)
as musl scanf is slower than glibc's and it took
comparable amount of time to the actual tree operations
on a large text file (gcc info page ~ 30K different words)
musl vs glibc tsearch (best run out of several tries)
$ time ./words <gcc.info
30617
real 0m0.261s
user 0m0.240s
sys 0m0.020s
$ time ./words-gnu <gcc.info
30617
real 0m0.291s
user 0m0.284s
sys 0m0.008s
by comparision hsearch version gives
$ time ./words <gcc.info
30617
real 0m0.116s
user 0m0.100s
sys 0m0.016s
(i could not test the glibc version of
hsearch as it segfaults after a while
even when allocate memory for every string
so i think it's a glibc bug)
View attachment "words.c" of type "text/x-csrc" (869 bytes)
View attachment "words-hsearch.c" of type "text/x-csrc" (882 bytes)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.