|
Boost Users : |
From: wugui (yg-boost-users_at_[hidden])
Date: 2002-12-04 23:14:05
boost_1_28_0
if construct only, and freeall in ~object_pool. i think it is good.
can i use object_pool to replace 'new delete'?
the destroy is slow.
thank for any advice.
newbie and not good at english.
full test code:
#include <boost/pool/object_pool.hpp>
#include <vector>
#include <iostream>
#include <time.h>
#include <stdlib.h>
struct Some
{
std::string ss;
int ii;
char cc[32];
};
int main(int argc, char * argv[])
{
boost::object_pool<Some> pool;
std::vector<Some*> v_Some;
int count = 20000;
time_t t = time(0); std::cout << ctime(&t) << std::endl;
for (int i=0; i<count; ++i)
{
Some * s = pool.construct();
if (s) v_Some.push_back(s);
else break;
}
t = time(0); std::cout << v_Some.size() << ctime(&t) << std::endl;
if (argc > 1)
{ // fast
for (std::vector<Some*>::reverse_iterator it = v_Some.rbegin();
it != v_Some.rend(); ++it)
pool.destroy(*it);
}
else
{ // slow
for (std::vector<Some*>::iterator it = v_Some.begin();
it != v_Some.end(); ++it)
pool.destroy(*it);
}
t = time(0); std::cout << ctime(&t) << std::endl;
return 0;
}
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