Extremely poor performance crunching random numbers under PIV-FC5

Karl Larsen k5di at zianet.com
Fri May 19 15:39:24 UTC 2006


Jakub Jelinek wrote:
> On Fri, May 19, 2006 at 03:54:26PM +0100, Matt Davey wrote:
>   
>> On Fri, 2006-05-19 at 10:20 -0400, Jakub Jelinek wrote:
>>     
>>> On Fri, May 19, 2006 at 04:16:40PM +0200, BankHacker wrote:
>>>       
>>>> Jakub, I have tried to do what you propose but the following code is
>>>> throwing an error in execution time:
>>>>         
>> [...]
>>     
>>>> 		memset(randomdataState, 0, sizeof(*randomdataState));
>>>>         
>>> And you dereference the uninitialized pointer here ^^^.
>>>       
>> Umm, just to be pedantic, sizeof will happily return
>> the number of bytes required to store 'struct random_data'.  It doesn't
>> need to dereference anything.  eg. "sizeof(struct random_data)"
>>     
>
> The problem is already in that memset, not on the third memset
> argument, but the first.  The dereference is done in memset, not in the
> caller.
>
> 	Jakub
>
>   
    I went and read man rand and it was interesting. I'm not sure if the 
random number needs to be a true random or if a pseudo-random will work. 
The function:

int rand(void)

will provide pseudo random numbers between 0 and RAND_MAX. You can make 
it better if you you use srand() to generate a starting number for rand.

Karl




More information about the fedora-list mailing list