On 2010-06-10 22:29, Vivien Raoul wrote:
> 2010/6/10 Török Edwin <[email protected]>
> 
>> On 2010-06-10 21:29, Vivien Raoul wrote:
>>> Actually, I'm not sure of what I did ; I couldn't apply the patch with
>>> "patch", and I made the changes manually ; but it seems that all the
>> free()
>>> are in the #if 0 block.
>>> What is exactly your patch supposed to do ?
>>
>> If ClamAV is built with memory pool support (which by default it is on
>> Linux), then there is no point in trying to free each individual node
>> from the tree (which can be hundreds of thousands).
>> Instead they will be all freed by the mpool_destroy().
>>
>> My guess is that the individual frees need to bring back some data from
>> the swap, before actually freeing it. And this is done for each node, so
>> it takes a while if you have limited memory, and a slow disk.
>>
> 
> So if I understood well, your modification implies no free at all ?

There is a single "free" that frees all the database at once, instead of
trying to free each individual piece.

> 
>>
>> How fast is "really fast" though?
>>
> 
> The force-reload took about 3 to 8 minutes, now it takes less than 1 min
> (between 37 and 53s).

OK, please open a bug then so that we may eventually include the patch
into a release.
> I tried it several times, and I did not see memory leeks (the "free" command
> shows me normal things).
> 
> Regards,
> Vivien
> 
>>
>> Best regards,
>> --Edwin
>> _______________________________________________
>> Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
>> http://www.clamav.net/support/ml
>>
> _______________________________________________
> Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
> http://www.clamav.net/support/ml

_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml

Reply via email to