diff options
author | Howard Hinnant <hhinnant@apple.com> | 2010-11-16 21:33:17 +0000 |
---|---|---|
committer | Howard Hinnant <hhinnant@apple.com> | 2010-11-16 21:33:17 +0000 |
commit | 9b35c8275c6e25442915a25648a1b0bade40a43e (patch) | |
tree | 5e1d9d88a2243659212c104664332954b4e94f71 /libcxx/include | |
parent | fced6e2587dd530b5e35bd48eb67bc0097508a92 (diff) | |
download | bcm5719-llvm-9b35c8275c6e25442915a25648a1b0bade40a43e.tar.gz bcm5719-llvm-9b35c8275c6e25442915a25648a1b0bade40a43e.zip |
Dave Zarzycki showed how the efficiency of shared_ptr could be significantly
increased. The following program is running 49% faster:
#include <iostream>
#include <memory>
#include <chrono>
#include <vector>
#include "chrono_io"
int main()
{
typedef std::chrono::high_resolution_clock Clock;
Clock::time_point t0 = Clock::now();
{
std::shared_ptr<int> p(new int (1));
std::vector<std::shared_ptr<int> > v(1000000, p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
}
Clock::time_point t1 = Clock::now();
std::cout << (t1-t0) << '\n';
}
llvm-svn: 119388
Diffstat (limited to 'libcxx/include')
-rw-r--r-- | libcxx/include/memory | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxx/include/memory b/libcxx/include/memory index c01615469bf..4752ba0007d 100644 --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -2535,7 +2535,7 @@ public: : __shared_owners_(__refs) {} void __add_shared(); - void __release_shared(); + bool __release_shared(); _LIBCPP_INLINE_VISIBILITY long use_count() const {return __shared_owners_ + 1;} }; |