Boost logo

Boost Users :

From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2006-09-06 10:17:44


LionAM wrote:
> Or another question:
> Why is ptr_vector _much_ slower than std::vector?

It brings in a number of headers *in addition to* <vector>.
(<memory> and numerous boost headers for meta-programming and
serialization).

Furthermore, it require a litle bit meta-programming to allow the
specific ptr_vector< nullable<T> > syntax.

On visual C++ 8 I get (2.1 Ghz P3 CPU, 7200RPM harddisk):

$ time cl /EHsc ptr_vector.cpp /I../boost/boost
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42
for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

ptr_vector.cpp
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.

/out:ptr_vector.exe
ptr_vector.obj

real 0m1.652s
user 0m0.015s
sys 0m0.031s

For this sample program:

#include <boost/ptr_container/ptr_vector.hpp>

int main()
{
     boost::ptr_vector<int> vec;
     vec.push_back( new int(42) );
     return vec.size();
}

With precompiled headers it can be much lower. Also note that a
slow/unordered harddisk can affect compilation speed significantly.

-Thorsten


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