Few small optimizations here and there

This commit is contained in:
Aokromes
2017-02-01 16:51:21 +01:00
parent 0f9c7106ce
commit 8bb777ef5c
35 changed files with 366 additions and 373 deletions

View File

@@ -576,10 +576,23 @@ class TC_SHARED_API ByteBuffer
FlushBits();
if (_storage.size() < _wpos + cnt)
_storage.resize(_wpos + cnt);
size_t const newSize = _wpos + cnt;
if (_storage.capacity() < newSize) // custom memory allocation rules
{
if (newSize < 100)
_storage.reserve(300);
else if (newSize < 750)
_storage.reserve(2500);
else if (newSize < 6000)
_storage.reserve(10000);
else
_storage.reserve(400000);
}
if (_storage.size() < newSize)
_storage.resize(newSize);
std::memcpy(&_storage[_wpos], src, cnt);
_wpos += cnt;
_wpos = newSize;
}
void append(const ByteBuffer& buffer)