|
Boost : |
From: Joel de Guzman (joel_at_[hidden])
Date: 2006-10-18 18:26:06
Hailin Jin wrote:
> Hi Ulli -- good question.
>
> Under GCC, all the four versions (read/write, proxy/accessor) run at the
> same speed (fastest). However, under Visual Studio, interleaved=>planar
> is faster than planar=>interleaved with your original code
> (interleaved=>planar runs at the same speed as the ones under GCC). But
> after I added a method for RGBValue as follows:
> template <typename T2>
> RGBValue& operator=(const T2& pa) {
> r=pa.r; g=pa.g; b=pa.b;
> return *this;
> }
> the proxy version for interleaved=>planar runs as fast as all others.
> The only one left slower is the accessor version for
> planar=>interleaved. My guess is that in the accessor version, the
> compiler may create an unnecessary temporary object after dereferencing
> the planar proxy. This could be something interesting for you to look into.
Ok, If I haven't mentioned in my review, I'll also want to see
benchmarks. That'll be really nice.
Regards,
-- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk