Hi, I am very new in using Boost library. I start replacing row memory array with 'multi_array' class template but the performace slow down a lot. Running this test program... //begin------------------ #include "windows.h" #include <iostream> #include "boost\multi_array.hpp" using namespace std; using namespace boost; int main() { const size_t DimX = 2000; const size_t DimY = 1500; const size_t DimZ = 1; multi_array<int,3> V3(extents[DimZ][DimY][DimX]); int iVal; unsigned long time1 = GetTickCount(); for (size_t Z=0; Z<DimZ; ++Z) for (size_t Y=0; Y<DimY; ++Y) for (size_t X=0; X<DimX; ++X) iVal = V3[Z][Y][X]; unsigned long time2 = GetTickCount(); cout << "Multi_array: " << time2-time1 << endl; int * pInt = V3.data(); time1 = GetTickCount(); for (size_t Z=0; Z<DimZ; ++Z) for (size_t Y=0; Y<DimY; ++Y) for (size_t X=0; X<DimX; ++X) iVal = pInt[(Z*DimY+Y)*DimX+X]; time2 = GetTickCount(); cout << "Pointer....: " << time2-time1 << endl; return 0; } //end------------------ ... the output (using vc++ in release mode with no optimization) is Multi_array: 1663 Pointer....:70 So, where am I wrong? Thanks. Marco.