Boost logo

Boost Users :

From: KSpam (keesling_spam_at_[hidden])
Date: 2007-11-27 10:25:52


Bryan,

> I've discovered a situation where using boost::array results in a
> 2-fold performance degradation over other array types, including C arrays,
> tr1::array, and a simple handwritten array class.
> While the tr1::array performs well, I was suprised to find that it pads the
> array, so sizeof(tr1::array<3,float>) == sizeof(tr1::array<4,float>). Is
> that a requirement of tr1::array?

It is very strange that you see a performance difference between tr1::array
and boost::array. I think that boost::array was used as a submission for
tr1::array (they are likely one and the same).

> Anyway, the performance problem can be seen using Intel C++ (v9.1) on the
> Itanium platform, using '-O3' optimization.

In your build environment, ensure that you ARE NOT defining _DEBUG, and that
you ARE defining NDEBUG. These flags can make a significant difference in
run-time performance. Just because you are compiling with optimization flags
does not necessarily mean you are running the most optimized code :-)

Hope This Helps,
Justin


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net