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:
John Reck
2015-04-06 13:29:25 -07:00
parent 3d518037fe
commit 379f264bb6
2 changed files with 8 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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