diff options
| author | 2019-08-15 18:45:46 +0000 | |
|---|---|---|
| committer | 2019-08-15 18:45:46 +0000 | |
| commit | 2f089b4e6e0f214ecdd5612bb2fd377f9f73cdc3 (patch) | |
| tree | a8ef000de0e37bfc76eea16b99d5c0628080110f | |
| parent | f93ad188411d05ee688c32ec1707a6ac105515a7 (diff) | |
| parent | e926ab508d94a32cfded4778d0f2ed3217cfbce3 (diff) | |
Merge "TimeStats: bound the stats pool size"
| -rw-r--r-- | services/surfaceflinger/TimeStats/TimeStats.cpp | 7 | ||||
| -rw-r--r-- | services/surfaceflinger/TimeStats/TimeStats.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/services/surfaceflinger/TimeStats/TimeStats.cpp b/services/surfaceflinger/TimeStats/TimeStats.cpp index 93fe7d056c..3e3ab18e8f 100644 --- a/services/surfaceflinger/TimeStats/TimeStats.cpp +++ b/services/surfaceflinger/TimeStats/TimeStats.cpp @@ -72,8 +72,10 @@ std::string TimeStats::miniDump() { std::string result = "TimeStats miniDump:\n"; std::lock_guard<std::mutex> lock(mMutex); - android::base::StringAppendF(&result, "Number of tracked layers is %zu\n", + android::base::StringAppendF(&result, "Number of layers currently being tracked is %zu\n", mTimeStatsTracker.size()); + android::base::StringAppendF(&result, "Number of layers in the stats pool is %zu\n", + mTimeStats.stats.size()); return result; } @@ -250,6 +252,9 @@ void TimeStats::setPostTime(int32_t layerID, uint64_t frameNumber, const std::st postTime); std::lock_guard<std::mutex> lock(mMutex); + if (!mTimeStats.stats.count(layerName) && mTimeStats.stats.size() >= MAX_NUM_LAYER_STATS) { + return; + } if (!mTimeStatsTracker.count(layerID) && mTimeStatsTracker.size() < MAX_NUM_LAYER_RECORDS && layerNameIsValid(layerName)) { mTimeStatsTracker[layerID].layerName = layerName; diff --git a/services/surfaceflinger/TimeStats/TimeStats.h b/services/surfaceflinger/TimeStats/TimeStats.h index 2bcb5682b0..eed711158a 100644 --- a/services/surfaceflinger/TimeStats/TimeStats.h +++ b/services/surfaceflinger/TimeStats/TimeStats.h @@ -161,6 +161,7 @@ private: GlobalRecord mGlobalRecord; static const size_t MAX_NUM_LAYER_RECORDS = 200; + static const size_t MAX_NUM_LAYER_STATS = 200; }; } // namespace impl |