class test_class1 { S32 value1; S32 value2; }; void test1() { Vector > v; for(S32 i=0; i < 100000; i++) { v.push_back(boost::shared_ptr(new test_class1())); v.erase(0); } } class test_class2 : public Object { S32 value1; S32 value2; }; void test2() { Vector > v; for(S32 i=0; i < 100000; i++) { v.push_back(new test_class2()); v.erase(0); } } #ifdef TNL_OS_XBOX int zapmain(int argc, char **argv) #else int main(int argc, char **argv) #endif { Platform::sleep(1000); U32 time1 = Platform::getRealMilliseconds(); test1(); U32 time2 = Platform::getRealMilliseconds(); test2(); U32 time3 = Platform::getRealMilliseconds(); printf("timing: %i %i\n", time2 - time1, time3 - time2); Platform::sleep(5000); //debug mode.. Shared_Ptr:3236 RefPtr:2687 //optimized... shared_ptr:418 RefPtr:167 (lower = faster)