From 379f264bb62ace2cf2053d4765307234bf66552f Mon Sep 17 00:00:00 2001 From: John Reck Date: Mon, 6 Apr 2015 13:29:25 -0700 Subject: Add stat collection start time Add CLOCK_MONOTONIC to signal when the stat collection started to allow for tracking stats over time Change-Id: Iab7c52f21184eea603ddc8572b9d91a951b45a00 --- libs/hwui/JankTracker.cpp | 6 ++++++ libs/hwui/JankTracker.h | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'libs/hwui') diff --git a/libs/hwui/JankTracker.cpp b/libs/hwui/JankTracker.cpp index 65be9e1..a72faea 100644 --- a/libs/hwui/JankTracker.cpp +++ b/libs/hwui/JankTracker.cpp @@ -169,6 +169,10 @@ void JankTracker::switchStorageToAshmem(int ashmemfd) { newData->jankFrameCount += mData->jankFrameCount; newData->totalFrameCount >>= divider; newData->totalFrameCount += mData->totalFrameCount; + if (newData->statStartTime > mData->statStartTime + || newData->statStartTime == 0) { + newData->statStartTime = mData->statStartTime; + } freeData(); mData = newData; @@ -235,6 +239,7 @@ void JankTracker::dumpBuffer(const void* buffer, size_t bufsize, int fd) { } void JankTracker::dumpData(const ProfileData* data, int fd) { + dprintf(fd, "\nStats since: %lluns", data->statStartTime); dprintf(fd, "\nTotal frames rendered: %u", data->totalFrameCount); dprintf(fd, "\nJanky frames: %u (%.2f%%)", data->jankFrameCount, (float) data->jankFrameCount / (float) data->totalFrameCount * 100.0f); @@ -252,6 +257,7 @@ void JankTracker::reset() { mData->frameCounts.fill(0); mData->totalFrameCount = 0; mData->jankFrameCount = 0; + mData->statStartTime = systemTime(CLOCK_MONOTONIC); } uint32_t JankTracker::findPercentile(const ProfileData* data, int percentile) { diff --git a/libs/hwui/JankTracker.h b/libs/hwui/JankTracker.h index 4783001..3887e5e 100644 --- a/libs/hwui/JankTracker.h +++ b/libs/hwui/JankTracker.h @@ -44,10 +44,11 @@ enum JankType { struct ProfileData { std::array jankTypeCounts; // See comments on kBucket* constants for what this holds - std::array frameCounts; + std::array frameCounts; uint32_t totalFrameCount; uint32_t jankFrameCount; + nsecs_t statStartTime; }; // TODO: Replace DrawProfiler with this -- cgit v1.1