diff options
author | Alex Trotsenko <alex1973tr@gmail.com> | 2015-07-02 10:55:02 +0300 |
---|---|---|
committer | Alex Trotsenko <alex1973tr@gmail.com> | 2015-08-27 14:42:37 +0000 |
commit | c3d8ab78b8bc63cc15b56719fc7bf2ec42c800de (patch) | |
tree | 3dba35c39908272b63d26fecd732cc6f35d8c159 /src/corelib/tools/qringbuffer_p.h | |
parent | 61ad604ad41607be97efea5a18cd4d9fb7ddca73 (diff) |
QRingBuffer: avoid allocation in c'tor
Reduces creation time and memory consumption when the buffer is unused.
Robin's benchmark:
QBENCHMARK {
QFile file(filename);
}
reports the following results (run with -median 10 -iterations 524288):
before: 0.00028 msecs per iteration (total: 149, iterations: 524288)
after: 0.00017 msecs per iteration (total: 93, iterations: 524288).
Change-Id: Ied4e7caeca794b94260b8fc59b3ba656f4719c30
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'src/corelib/tools/qringbuffer_p.h')
-rw-r--r-- | src/corelib/tools/qringbuffer_p.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/corelib/tools/qringbuffer_p.h b/src/corelib/tools/qringbuffer_p.h index e7e80bc02c..3a5ae1c4cc 100644 --- a/src/corelib/tools/qringbuffer_p.h +++ b/src/corelib/tools/qringbuffer_p.h @@ -54,9 +54,7 @@ class QRingBuffer { public: explicit inline QRingBuffer(int growth = 4096) : - head(0), tail(0), tailBuffer(0), basicBlockSize(growth), bufferSize(0) { - buffers.append(QByteArray()); - } + head(0), tail(0), tailBuffer(0), basicBlockSize(growth), bufferSize(0) { } inline qint64 nextDataBlockSize() const { return (tailBuffer == 0 ? tail : buffers.first().size()) - head; |