Send the hint immediately when actual > target
Send the hint immediately when actual duration is longer than target duration. Test: boot Bug: 198379880 Signed-off-by: Wei Wang <wvw@google.com> Change-Id: I6c80940b27d65a1e34e40f61eef3f81990957711
This commit is contained in:
parent
43f42ced37
commit
9f174f4bbb
@ -184,13 +184,13 @@ int APerformanceHintSession::reportActualWorkDuration(int64_t actualDurationNano
|
||||
mTimestampsNanos.push_back(now);
|
||||
|
||||
/**
|
||||
* Use current sample to determine the rate limit. We can pick a shorter rate limit
|
||||
* if any sample underperformed, however, it could be the lower level system is slow
|
||||
* to react. So here we explicitly choose the rate limit with the latest sample.
|
||||
* Cache the hint if the hint is not overtime and the mLastUpdateTimestamp is
|
||||
* still in the mPreferredRateNanos duration.
|
||||
*/
|
||||
int64_t rateLimit = actualDurationNanos > mTargetDurationNanos ? mPreferredRateNanos
|
||||
: 10 * mPreferredRateNanos;
|
||||
if (now - mLastUpdateTimestamp <= rateLimit) return 0;
|
||||
if (actualDurationNanos < mTargetDurationNanos &&
|
||||
now - mLastUpdateTimestamp <= mPreferredRateNanos) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
binder::Status ret =
|
||||
mHintSession->reportActualWorkDuration(mActualDurationsNanos, mTimestampsNanos);
|
||||
|
Loading…
x
Reference in New Issue
Block a user