Re: qsort (was Re: Solaris)

Поиск
Список
Период
Сортировка
От Mark Kirkwood
Тема Re: qsort (was Re: Solaris)
Дата
Msg-id 3EAF262D.20706@paradise.net.nz
обсуждение исходный текст
Ответ на Re: qsort (was Re: Solaris)  (Bruce Momjian <pgman@candle.pha.pa.us>)
Ответы Re: qsort (was Re: Solaris)
Список pgsql-general
Bruce Momjian wrote:

>Let's have folks run a test program and get the results for some OS's.
>I would prefer to get some results before moving to a formalized option.
>
>
>
I retested Linux 2.4.19 (Mandrake 9) using a simple "many equal keys"
program (see below) compiled with and without BSD qsort.c from Pg source.

$ time ./testbsdqsort
0.80user 0.02system 0:00.83elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (69major+991minor)pagefaults 0swaps
$ time ./testqsort
2.08user 0.04system 0:02.13elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (105major+1967minor)pagefaults 0swaps


So for the many equal keys, BSD qsort is significantly faster.

Clearly there are other test scenarios to examine, but the many equal
keys case is important.

cheers

Mark


-- the program...

#include <stdio.h>
#include <stdlib.h>

const int elements = 1000000;
const int mod = 100;

int sortfunc( const void* n1, const void* n2 ) {
        int ret;
        ret =  (*(int*)n1) -(*(int*)n2) ;
        return ret;
}

int main(int argc, char** argv ) {
        int array[elements];
        int i;
        for ( i = 0; i < elements; i++ ) {
                array[i] = i % mod;
        }
        qsort( array, elements, sizeof(int),sortfunc);
        return 0;
}


-- end


В списке pgsql-general по дате отправления:

Предыдущее
От: elein
Дата:
Сообщение: fixed size columns
Следующее
От: nolan@celery.tssi.com
Дата:
Сообщение: Creating a functional index on a cast?