diff options
author | luigi1111 <luigi1111w@gmail.com> | 2018-09-04 13:19:58 -0500 |
---|---|---|
committer | luigi1111 <luigi1111w@gmail.com> | 2018-09-04 13:19:58 -0500 |
commit | 77ed11e62707e00e74e5f2c599b811719b7aaaa0 (patch) | |
tree | 41c89eb9493abb3d2dfba1684bb98ae03f5ff602 /contrib/epee/include/serialization | |
parent | Merge pull request #4269 (diff) | |
parent | wallet2: ask for a binary output distribution, for speed (diff) | |
download | monero-77ed11e62707e00e74e5f2c599b811719b7aaaa0.tar.xz |
Merge pull request #4270
29dea03 epee: resize vectors where possible in serialization (moneromooo-monero)
76affd9 epee: some speedup in parsing (moneromooo-monero)
dc6c069 db_lmdb: speedup the get_output_distribution common case (moneromooo-monero)
76ac5a8 wallet2: ask for a binary output distribution, for speed (moneromooo-monero)
Diffstat (limited to 'contrib/epee/include/serialization')
-rw-r--r-- | contrib/epee/include/serialization/keyvalue_serialization_overloads.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/contrib/epee/include/serialization/keyvalue_serialization_overloads.h b/contrib/epee/include/serialization/keyvalue_serialization_overloads.h index 09087f785..15c95f07a 100644 --- a/contrib/epee/include/serialization/keyvalue_serialization_overloads.h +++ b/contrib/epee/include/serialization/keyvalue_serialization_overloads.h @@ -35,6 +35,11 @@ namespace epee { + namespace + { + template<class C> void hint_resize(C &container, size_t size) {} + template<class C> void hint_resize(std::vector<C> &container, size_t size) { container.reserve(size); } + } namespace serialization { @@ -158,6 +163,7 @@ namespace epee false, "size in blob " << loaded_size << " not have not zero modulo for sizeof(value_type) = " << sizeof(typename stl_container::value_type) << ", type " << typeid(typename stl_container::value_type).name()); size_t count = (loaded_size/sizeof(typename stl_container::value_type)); + hint_resize(container, count); for(size_t i = 0; i < count; i++) container.insert(container.end(), *(pelem++)); } |