Boost logo

Boost :

From: Avi Revivo (revivoavi_at_[hidden])
Date: 2007-10-31 07:30:18


Hi Joaquín,

Thanks for the fast reply.

After dissecting i found out that the only problem is the the actual
invocation of delete().

Code executed:
**********************************************************

            int *arrayOfPointers[100000];

        for(int i = 0; i < 100000; i++)
        {
                arrayOfPointers[i] = new int;
        }

        for(int i = 0; i < 100000; i++)
        {
                delete arrayOfPointers[i];
        }

**********************************************************

Excuting the for loop that deletes takes 25 times slower then any other
computer tested. The average time for a single delete operation is longer in
by factor of 25.

Therefore, the container got nothing to do with it. I am still searching for
the reason for this behavior, i am looking for possible hardware problems.

Excuting this code in windows safe mode did not reflect any change.

If anyone can recommend tools to diagnose such a problem it will be greatly
appreciated.

Many thanks,
Avi

Joaquín Mª López Muñoz wrote:
>
> Avi Revivo ha escrito:
>
>> Note that i created a stand alone application to do only this performance
>> tests compiled in visual studio 2005 without CLI support.
>>
>> When excuting this test program on other HP G4 servers they run as fast
>> (faster) then the standard PC. I have only 1 HP G4 machine which the
>> performance is as described. I tried all varation of compiler
>> optimization
>> but still. On this machine alone the performance is extermaly worse then
>> all
>> other computers when removing elements from the container.
>>
>
> Hello Avi,
>
> I don't see any reason why the erase part should perform so erraticaly on
> the
> HP server, specially when on other servers the program works fine. My
> hunch
> is that this could be related to the L1 and L2 cache configuration of the
> machine. Could you compare this particular setting with those of the
> servers
> where performance is adequate?
>
> Other than that I don't know what more to suggest. If you could share the
> test
> code I'd be happy to have a look at it. Also, maybe using a pool allocator
> like
> http://boost.org/libs/pool/doc/implementation/pool_alloc.html might have
> some
> beneficial effect and fix cache anomalies.
>
> Please keep me informed of your progress, if any, with this.
>
> Joaquín M López Muñoz
> Telefónica, Investigación y Desarrollo
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>
>

-- 
View this message in context: http://www.nabble.com/Mutli-index-container---performance-varation-when-erasing-large-amount-of-rows-in-different-computers-tf4717124.html#a13507108
Sent from the Boost - Dev mailing list archive at Nabble.com.

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk