Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Sep 8, 2004

Avoid Pointer Derefencing Hell with Performance Applied Programming

Have you ever had code like this?

for ( int i = 0 ; i < m_iNumElements ; i++ )
{
   m_fVector[i] = m_pcFrustum->m_psViewProj->m_psProjection->m_someArray[i];
{
This can be very frustrating. For every iteration, the long deferencing will commence. This can be easily optimized to produce more efficient code, like this:

float* pmatProjection = m_pcFrustum->m_psViewProj->m_psProjection->m_someArray;
for ( int i = 0 ; i < m_iNumElements ; ++i )
{
   m_fVector[i] = pmatProjection[i];
}
Even better, if it's applicable, you can add this as this is a linear, incremental loop:

float* pmatProjection = m_pcFrustum->m_psViewProj->m_psProjection->m_someArray;
for ( int i = 0 ; i < m_iNumElements ; ++i, ++pmatProjection )
{
   m_fVector[i] = *pmatProjection;
}
Jason Tully
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date