Commit 747f8a8e authored by Brian Pane's avatar Brian Pane Committed by Sara Golemon

Small memory footprint reduction for folly::MultiLevelTimeSeries

Summary:
* Spend some extra time in getNumBuckets() in order to save
space: 8 bytes per object on 64-bit platforms.

Test Plan: Ran the unit tests

Reviewed By: simpkins@fb.com

Subscribers: ruibalp

FB internal diff: D1488345
parent 8925b642
......@@ -26,8 +26,7 @@ MultiLevelTimeSeries<VT, TT>::MultiLevelTimeSeries(
size_t numBuckets,
size_t numLevels,
const TimeType levelDurations[])
: numBuckets_(numBuckets),
cachedTime_(0),
: cachedTime_(0),
cachedSum_(0),
cachedCount_(0) {
CHECK_GT(numLevels, 0);
......
......@@ -73,7 +73,10 @@ class MultiLevelTimeSeries {
/*
* Return the number of buckets used to track time series at each level.
*/
size_t numBuckets() const { return numBuckets_; }
size_t numBuckets() const {
// The constructor ensures that levels_ has at least one item
return levels_[0].numBuckets();
}
/*
* Return the number of levels tracked by MultiLevelTimeSeries.
......@@ -297,7 +300,6 @@ class MultiLevelTimeSeries {
void flush();
private:
size_t numBuckets_;
std::vector<Level> levels_;
// Updates within the same time interval are cached
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment