# Print output for @column tags ?>
public
static
class
PerformanceHintManager.Session
extends Object
implements
Closeable
java.lang.Object | |
↳ | android.os.PerformanceHintManager.Session |
A Session represents a group of threads with an inter-related workload such that hints for their performance should be considered as a unit. The threads in a given session should be long-life and not created or destroyed dynamically.
Each session is expected to have a periodic workload with a target duration for each cycle. The cycle duration is likely greater than the target work duration to allow other parts of the pipeline to run within the available budget. For example, a renderer thread may work at 60hz in order to produce frames at the display's frame but have a target work duration of only 6ms.
Any call in this class will change its internal data, so you must do your own thread safety to protect from racing.
Note that the target work duration can be updated
if workloads change.
After each cycle of work, the client is expected to
report
the actual time taken to complete.
All timings should be in SystemClock#elapsedRealtimeNanos()
.
Public methods | |
---|---|
void
|
close()
Ends the current hint session. |
void
|
reportActualWorkDuration(long actualDurationNanos)
Reports the actual duration for the last cycle of work. |
void
|
updateTargetWorkDuration(long targetDurationNanos)
Updates this session's target duration for each cycle of work. |
Inherited methods | |
---|---|
public void close ()
Ends the current hint session.
Once called, you should not call anything else on this object.
public void reportActualWorkDuration (long actualDurationNanos)
Reports the actual duration for the last cycle of work.
The system will attempt to adjust the core placement of the threads within the thread group and/or the frequency of the core on which they are run to bring the actual duration close to the target duration.
Parameters | |
---|---|
actualDurationNanos |
long : how long the thread group took to complete its last task in
nanoseconds |
public void updateTargetWorkDuration (long targetDurationNanos)
Updates this session's target duration for each cycle of work.
Parameters | |
---|---|
targetDurationNanos |
long : the new desired duration in nanoseconds |