Loading libs/hwui/JankTracker.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -169,6 +169,10 @@ void JankTracker::switchStorageToAshmem(int ashmemfd) { newData->jankFrameCount += mData->jankFrameCount; newData->jankFrameCount += mData->jankFrameCount; newData->totalFrameCount >>= divider; newData->totalFrameCount >>= divider; newData->totalFrameCount += mData->totalFrameCount; newData->totalFrameCount += mData->totalFrameCount; if (newData->statStartTime > mData->statStartTime || newData->statStartTime == 0) { newData->statStartTime = mData->statStartTime; } freeData(); freeData(); mData = newData; mData = newData; Loading Loading @@ -235,6 +239,7 @@ void JankTracker::dumpBuffer(const void* buffer, size_t bufsize, int fd) { } } void JankTracker::dumpData(const ProfileData* data, 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, "\nTotal frames rendered: %u", data->totalFrameCount); dprintf(fd, "\nJanky frames: %u (%.2f%%)", data->jankFrameCount, dprintf(fd, "\nJanky frames: %u (%.2f%%)", data->jankFrameCount, (float) data->jankFrameCount / (float) data->totalFrameCount * 100.0f); (float) data->jankFrameCount / (float) data->totalFrameCount * 100.0f); Loading @@ -252,6 +257,7 @@ void JankTracker::reset() { mData->frameCounts.fill(0); mData->frameCounts.fill(0); mData->totalFrameCount = 0; mData->totalFrameCount = 0; mData->jankFrameCount = 0; mData->jankFrameCount = 0; mData->statStartTime = systemTime(CLOCK_MONOTONIC); } } uint32_t JankTracker::findPercentile(const ProfileData* data, int percentile) { uint32_t JankTracker::findPercentile(const ProfileData* data, int percentile) { Loading libs/hwui/JankTracker.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -44,10 +44,11 @@ enum JankType { struct ProfileData { struct ProfileData { std::array<uint32_t, NUM_BUCKETS> jankTypeCounts; std::array<uint32_t, NUM_BUCKETS> jankTypeCounts; // See comments on kBucket* constants for what this holds // 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 totalFrameCount; uint32_t jankFrameCount; uint32_t jankFrameCount; nsecs_t statStartTime; }; }; // TODO: Replace DrawProfiler with this // TODO: Replace DrawProfiler with this Loading Loading
libs/hwui/JankTracker.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -169,6 +169,10 @@ void JankTracker::switchStorageToAshmem(int ashmemfd) { newData->jankFrameCount += mData->jankFrameCount; newData->jankFrameCount += mData->jankFrameCount; newData->totalFrameCount >>= divider; newData->totalFrameCount >>= divider; newData->totalFrameCount += mData->totalFrameCount; newData->totalFrameCount += mData->totalFrameCount; if (newData->statStartTime > mData->statStartTime || newData->statStartTime == 0) { newData->statStartTime = mData->statStartTime; } freeData(); freeData(); mData = newData; mData = newData; Loading Loading @@ -235,6 +239,7 @@ void JankTracker::dumpBuffer(const void* buffer, size_t bufsize, int fd) { } } void JankTracker::dumpData(const ProfileData* data, 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, "\nTotal frames rendered: %u", data->totalFrameCount); dprintf(fd, "\nJanky frames: %u (%.2f%%)", data->jankFrameCount, dprintf(fd, "\nJanky frames: %u (%.2f%%)", data->jankFrameCount, (float) data->jankFrameCount / (float) data->totalFrameCount * 100.0f); (float) data->jankFrameCount / (float) data->totalFrameCount * 100.0f); Loading @@ -252,6 +257,7 @@ void JankTracker::reset() { mData->frameCounts.fill(0); mData->frameCounts.fill(0); mData->totalFrameCount = 0; mData->totalFrameCount = 0; mData->jankFrameCount = 0; mData->jankFrameCount = 0; mData->statStartTime = systemTime(CLOCK_MONOTONIC); } } uint32_t JankTracker::findPercentile(const ProfileData* data, int percentile) { uint32_t JankTracker::findPercentile(const ProfileData* data, int percentile) { Loading
libs/hwui/JankTracker.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -44,10 +44,11 @@ enum JankType { struct ProfileData { struct ProfileData { std::array<uint32_t, NUM_BUCKETS> jankTypeCounts; std::array<uint32_t, NUM_BUCKETS> jankTypeCounts; // See comments on kBucket* constants for what this holds // 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 totalFrameCount; uint32_t jankFrameCount; uint32_t jankFrameCount; nsecs_t statStartTime; }; }; // TODO: Replace DrawProfiler with this // TODO: Replace DrawProfiler with this Loading