Adjust ProfileSaver strategy
Change to a notification based strategy (instead of polling):
- the JIT notifies the ProfileSaver everytime it attempts a compilation
or generate (in a task) a ProfileInfo object for the method
- once a certain number of hot methods notification are received,
ProfileSaver wakes up the thread to do the analysis
- a wake up does not equal to I/O since the during processing we might
realized that's actually not enough new data.
- ProfileSaver throtles the request and ensures it doesn't do the
processing more often than kMinSavePeriodNs.
The new strategy avoids waking the thread unnecessary during extended
idle periods when we don't JIT.
Bug: 26815940
Change-Id: I24cb15daead5c5a5395ae6f5f79549e39e2f3011
3 files changed