This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Faster strchr implementation.
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: Liubov Dmitrieva <liubov dot dmitrieva at gmail dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 12 Aug 2013 16:57:18 +0200
- Subject: Re: [PATCH] Faster strchr implementation.
- References: <CAHjhQ926EE-MYDJR5Eftf+DUefBg-Gox0pw57vZ7XUwsO3OPJg at mail dot gmail dot com> <20130808190716 dot GA4589 at domone dot kolej dot mff dot cuni dot cz> <CAHjhQ92+C6uXyrUhTd3OWuoa6v2SeUaKLBuqaNX5Sqtn4ANBdg at mail dot gmail dot com> <CAHjhQ90S-1uBhwV44KODTcQkr=0U-P+_9Pu0O=RbYYY9e82JCA at mail dot gmail dot com> <20130809164420 dot GB4972 at domone dot kolej dot mff dot cuni dot cz> <CAHjhQ92+D_VX1mXFj3jFJORN7LkzvVLLoM+0pHGUv1f8u0csVA at mail dot gmail dot com> <CAHjhQ90Zkc_C8QERKUXsESWu6ti-r+WXB-zt=6qzj8j4AVFW2Q at mail dot gmail dot com> <20130812122059 dot GB19931 at domone dot kolej dot mff dot cuni dot cz> <CAHjhQ90P=jGYKuJwOyc5dNCx-YZk6vGYFtYzN6kdTnB8bggkTQ at mail dot gmail dot com> <CAHjhQ91RVTYFVXW4VMMoUjyqKBg=jPE1=cJnteYVL8CUgrXk_w at mail dot gmail dot com>
On Mon, Aug 12, 2013 at 04:38:45PM +0400, Liubov Dmitrieva wrote:
>
A simplest way is to take total time of each implementation and divide
that by time spend by fastest implementation.
This is what we are interested when we do profiling on practical
workloads like in results_gcc.
For random tests it does not make much sense.
It will compute average with weights that are moreless arbitrary,
In random tests used sizes 1-160 are ten times more likely
than 160-1600 which are ten times more likely than 1600-16000.
Then I did same correction as in estimated time spend graph. For given
size variants get called different number of times so I normalized that.
Now when I look to report.c I did not update it to accomodate more than
4 variants.
for(j=0;j<100;j++){
long cnt_n = (*cnt)[0][1][j]+(*cnt)[1][1][j]+(*cnt)[2][1][j]+(*cnt)[3][1][j];
total_time[choice] += (*time)[choice][1][j]/((*cnt)[choice][1][j]+0.1)*(cnt_n);
}