Revision 0454f781c262f8134f6d976295a3290f02724197 authored by Andrew Kryczka on 16 February 2018, 03:30:52 UTC, committed by Facebook Github Bot on 16 February 2018, 03:41:52 UTC
Summary: Calling `std::vector::reserve()` causes memory to be reallocated and then data to be moved. It was called prior to adding every block. This reallocation could be done a huge amount of times, e.g., for users with large index blocks. Instead, we can simply use `std::vector::emplace_back()` in such a way that preserves the no-memory-leak guarantee, while letting the vector decide when to reallocate space. Now I see reallocation/moving happen O(logN) times, rather than O(N) times, where N is the final size of vector. Closes https://github.com/facebook/rocksdb/pull/3508 Differential Revision: D6994228 Pulled By: ajkr fbshipit-source-id: ab7c11e13ff37c8c6c8249be7a79566a4068cd27
1 parent 989d123
File | Mode | Size |
---|---|---|
_data | ||
_docs | ||
_includes | ||
_layouts | ||
_posts | ||
_sass | ||
_top-level | ||
blog | ||
css | ||
doc-type-examples | ||
docs | ||
static | ||
.gitignore | -rw-r--r-- | 57 bytes |
CNAME | -rw-r--r-- | 11 bytes |
CONTRIBUTING.md | -rw-r--r-- | 4.7 KB |
Gemfile | -rw-r--r-- | 59 bytes |
Gemfile.lock | -rw-r--r-- | 3.5 KB |
LICENSE-DOCUMENTATION | -rw-r--r-- | 17.7 KB |
README.md | -rw-r--r-- | 3.1 KB |
TEMPLATE-INFORMATION.md | -rw-r--r-- | 2.5 KB |
_config.yml | -rw-r--r-- | 2.8 KB |
feed.xml | -rw-r--r-- | 1.2 KB |
index.md | -rw-r--r-- | 174 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...