diff options
| -rw-r--r-- | libs/hwui/JankTracker.cpp | 6 | ||||
| -rw-r--r-- | libs/hwui/JankTracker.h | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/libs/hwui/JankTracker.cpp b/libs/hwui/JankTracker.cpp index 65be9e19a56a..a72faeab6268 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 478300143553..3887e5e65d60 100644 --- a/libs/hwui/JankTracker.h +++ b/libs/hwui/JankTracker.h @@ -44,10 +44,11 @@ enum JankType { struct ProfileData { std::array<uint32_t, NUM_BUCKETS> jankTypeCounts; // See comments on kBucket* constants for what this holds - std::array<uint32_t, 57> frameCounts; + std::array<uint32_t, 55> frameCounts; uint32_t totalFrameCount; uint32_t jankFrameCount; + nsecs_t statStartTime; }; // TODO: Replace DrawProfiler with this |