Extremely poor performance crunching random numbers under PIV-FC5

Karl Larsen k5di at zianet.com
Fri May 19 00:38:18 UTC 2006


BankHacker wrote:
>> It seems that maybe we can just say the whole problem comes down to that
>> rand() from dynamically linked libc.so.6 is slower to execute than what
>> is supposed to be the same code statically linked.
>
> Yes, glibc is under suspicion. There are several indications ...
>
>
>> If you can't get random_r() to work (see eg
>> http://refspecs.freestandards.org/LSB_1.2.0/gLSB/baselib-random-r-3.html
>
> I am trying to implement random_r function. This is my try:
>
> ### prueba.c #####################################################
>     #include <stdio.h>
>     #include <stdlib.h>
>
>     int32_t r;
>     struct random_data rand_data;
>
>     int main(int argc, char ** argv) {
>         random_r(&rand_data, &r);
>         printf("%d\n", (int)r);
>
>         return (0);
>     }
> ### prueba.c (the end) ###########################################
>
>
> But I obtain this result:
>
>     # gcc prueba.c -o prueba -Wall -pedantic
>     # ./prueba
>     Segmentation fault
>
> I am doing something wrong. Any hint?
>
> Thanks!
>
    Yes your not defining a value for r. Then your definition of a type 
of integer is not the way to do it. You define a structure and then use 
it wrong. Other than that it's fine.

Karl




More information about the fedora-list mailing list