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
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user