View Single Post
  #6  
Old 11-21-2003, 07:06 AM
Trumpcard
Demi-God
 
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
Default

Eureka !

Success !

Added this little gem into AICheckCloseArrgo

Code:
h the other information                                                         
                        if( (abs (mob->GetX() - sender->GetX() ) > iArrgoRange) 
|| (abs (mob->GetY() - sender->GetY() ) > iArrgoRange)|| (abs (mob->GetZ() - sen
der->GetZ() ) > iArrgoRange) || (mob->IsInvisible(sender))                      
                           || (mob->IsClient() && (!mob->CastToClient()->Connect
ed()                                                                            
                           || mob->CastToClient()->IsLD()                       
                           || mob->CastToClient()->IsBecomeNPC()                
                           || mob->CastToClient()->GetGM())

and heres the new profile results...


Quote:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
47.01 0.55 0.55 15823 0.03 0.06 EntityList::AICheckCloseAr
rgo(Mob*, float, float)
7.69 0.64 0.09 16233344 0.00 0.00 LinkedListIterator<Entity*
>::MoreElements()
5.98 0.71 0.07 12582403 0.00 0.00 Mob::IsMob()
5.56 0.78 0.07 16210547 0.00 0.00 LinkedListIterator<Entity*
>::Advance()
5.13 0.83 0.06 51483587 0.00 0.00 LinkedListIterator<Entity*
>::GetData()
5.13 0.90 0.06 11345291 0.00 0.00 Entity::IsCorpse()
5.13 0.95 0.06 sqrtf
2.56 0.98 0.03 717 0.04 0.07 Parser:elChatAndItemVars
(unsigned int)
1.71 1.00 0.02 32982 0.00 0.03 Mob::AI_Process()

Heres how often dist is now being called in comparison..

0.00 1.17 0.00 40869 0.00 0.00 itoa(int)
0.00 1.17 0.00 37034 0.00 0.00 Mob:ist(Mob const&amp
0.00 1.17 0.00 36766 0.00 0.00 Mob::InZone()

doing my little victory dance....

Now the iterators are the number one pain !
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
Reply With Quote