Commit 086e947c authored by ulan@chromium.org's avatar ulan@chromium.org

Remove pseudo-idle notification for main frame reload.

GC work after page reload introduces unnecessary pause and regresses Octane (see bug).

This CL might increase memory usage in the case when page is reloaded many times within a small timeframe. If there are such regressions, then they should be fixed by adjusting V8 GC heuristics and not sending pseudo-idle notification.

This CL does not regress SunSpider benchmark.

BUG=404020

Review URL: https://codereview.chromium.org/544593002

git-svn-id: svn://svn.chromium.org/blink/trunk@181394 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent bb6d6e27
......@@ -45,15 +45,15 @@ V8GCForContextDispose::V8GCForContextDispose()
void V8GCForContextDispose::notifyContextDisposed(bool isMainFrame)
{
m_didDisposeContextForMainFrame = m_didDisposeContextForMainFrame || isMainFrame;
m_didDisposeContextForMainFrame = isMainFrame;
V8PerIsolateData::mainThreadIsolate()->ContextDisposedNotification();
if (!m_pseudoIdleTimer.isActive())
if (!m_didDisposeContextForMainFrame && !m_pseudoIdleTimer.isActive())
m_pseudoIdleTimer.startOneShot(0.8, FROM_HERE);
}
void V8GCForContextDispose::notifyIdleSooner(double maximumFireInterval)
{
if (m_pseudoIdleTimer.isActive()) {
if (!m_didDisposeContextForMainFrame && m_pseudoIdleTimer.isActive()) {
double nextFireInterval = m_pseudoIdleTimer.nextFireInterval();
if (nextFireInterval > maximumFireInterval) {
m_pseudoIdleTimer.stop();
......@@ -70,11 +70,9 @@ V8GCForContextDispose& V8GCForContextDispose::instanceTemplate()
void V8GCForContextDispose::pseudoIdleTimerFired(Timer<V8GCForContextDispose>*)
{
const int longIdlePauseInMs = 100;
const int shortIdlePauseInMs = 10;
int hint = m_didDisposeContextForMainFrame ? longIdlePauseInMs : shortIdlePauseInMs;
V8PerIsolateData::mainThreadIsolate()->IdleNotification(hint);
m_didDisposeContextForMainFrame = false;
const int idlePauseInMs = 10;
if (!m_didDisposeContextForMainFrame)
V8PerIsolateData::mainThreadIsolate()->IdleNotification(idlePauseInMs);
}
} // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment