1 #include <boost/config.hpp> 2 3 #if defined(BOOST_MSVC) 4 #pragma warning(disable: 4786) // identifier truncated in debug info 5 #pragma warning(disable: 4710) // function not inlined 6 #pragma warning(disable: 4711) // function selected for automatic inline expansion 7 #pragma warning(disable: 4514) // unreferenced inline removed 8 #endif 9 10 // 11 // shared_ptr_timing_test.cpp - use to evaluate the impact of thread safety 12 // 13 // Copyright (c) 2002 Peter Dimov and Multi Media Ltd. 14 // 15 // Distributed under the Boost Software License, Version 1.0. (See 16 // accompanying file LICENSE_1_0.txt or copy at 17 // http://www.boost.org/LICENSE_1_0.txt) 18 // 19 20 #include <boost/shared_ptr.hpp> 21 #include <iostream> 22 #include <vector> 23 #include <ctime> 24 25 int const n = 8 * 1024 * 1024; 26 main()27int main() 28 { 29 using namespace std; 30 31 std::vector< boost::shared_ptr<int> > v; 32 boost::shared_ptr<int> pi(new int); 33 34 clock_t t = clock(); 35 36 for(int i = 0; i < n; ++i) 37 { 38 v.push_back(pi); 39 } 40 41 t = clock() - t; 42 43 std::cout << static_cast<double>(t) / CLOCKS_PER_SEC << '\n'; 44 45 return 0; 46 } 47