OSDN Git Service

Adjust ProfileSaver strategy
authorCalin Juravle <calin@google.com>
Fri, 29 Apr 2016 15:44:11 +0000 (16:44 +0100)
committerCalin Juravle <calin@google.com>
Mon, 16 May 2016 23:16:55 +0000 (00:16 +0100)
commita26389234ac66a4a5042c7bf7195c6531663d24d
treecd33279ec9285e777fc3023473ee9211a7b9425b
parent31e61f1d0aeb2c85ebddc7cd0cc3d7f1aea4014e
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

(cherry picked from commit 5fbb0fe0625a1f76aa33cd78ccf1a17b00d8f6d1)

Change-Id: Ifbac3a53c025e00a3faab6784bbfa679c6b42acb
runtime/jit/jit.cc
runtime/jit/profile_saver.cc
runtime/jit/profile_saver.h