|
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