void PageCache::releaseAutoreleasedPagesNowOrReschedule(Timer<PageCache>* timer) { double loadDelta = currentTime() - FrameLoader::timeOfLastCompletedLoad(); float userDelta = userIdleTime(); // FIXME: <rdar://problem/5211190> This limit of 42 risks growing the page cache far beyond its nominal capacity. if ((userDelta < 0.5 || loadDelta < 1.25) && m_autoreleaseSet.size() < 42) { LOG(PageCache, "WebCorePageCache: Postponing releaseAutoreleasedPagesNowOrReschedule() - %f since last load, %f since last input, %i objects pending release", loadDelta, userDelta, m_autoreleaseSet.size()); timer->startOneShot(autoreleaseInterval); return; } LOG(PageCache, "WebCorePageCache: Releasing page caches - %f seconds since last load, %f since last input, %i objects pending release", loadDelta, userDelta, m_autoreleaseSet.size()); releaseAutoreleasedPagesNow(); }
void PageCache::releaseAutoreleasedPagesNowDueToTimer(Timer<PageCache>*) { LOG(PageCache, "WebCorePageCache: Releasing page caches - %i objects pending release", m_autoreleaseSet.size()); releaseAutoreleasedPagesNow(); }