Use boost:circular_buffer instead of QList.

QList has to store an additional pointer for each element which leads to bad space efficiency.
This commit is contained in:
Chocobo1
2016-05-21 00:55:03 +08:00
committed by sledgehammer999
parent 1478b21e8d
commit 2dc6002064
2 changed files with 17 additions and 7 deletions

View File

@@ -27,17 +27,21 @@
* exception statement from your version.
*/
#include <QList>
#include "speedmonitor.h"
SpeedMonitor::SpeedMonitor()
: m_speedSamples(MAX_SAMPLES)
{
}
void SpeedMonitor::addSample(const SpeedSample &sample)
{
if (m_speedSamples.size() >= MAX_SAMPLES) {
m_sum -= m_speedSamples.front();
}
m_speedSamples.push_back(sample);
m_sum += sample;
if (m_speedSamples.size() > MAX_SAMPLES) {
m_sum -= m_speedSamples.front();
m_speedSamples.pop_front();
}
}
SpeedSampleAvg SpeedMonitor::average() const