[webkit-changes] cvs commit: WebKit/WebView.subproj WebFrame.m

Maciej mjs at opensource.apple.com
Sat Jul 9 17:45:53 PDT 2005


mjs         05/07/09 17:45:53

  Modified:    .        ChangeLog
               WebView.subproj WebFrame.m
  Log:
          - back out my revent page cache changes, turns out they cause a
  	major performance regression on PLT
  
          * WebView.subproj/WebFrame.m:
          (-[WebFrame _purgePageCache]):
  
  Revision  Changes    Path
  1.3218    +8 -0      WebKit/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebKit/ChangeLog,v
  retrieving revision 1.3217
  retrieving revision 1.3218
  diff -u -r1.3217 -r1.3218
  --- ChangeLog	9 Jul 2005 23:38:52 -0000	1.3217
  +++ ChangeLog	10 Jul 2005 00:45:50 -0000	1.3218
  @@ -1,5 +1,13 @@
   2005-07-09  Maciej Stachowiak  <mjs at apple.com>
   
  +        - back out my revent page cache changes, turns out they cause a
  +	major performance regression on PLT
  +
  +        * WebView.subproj/WebFrame.m:
  +        (-[WebFrame _purgePageCache]):
  +
  +2005-07-09  Maciej Stachowiak  <mjs at apple.com>
  +
           Reviewed by hyatt.
   
   	Replace int with unsigned, to avoid going into a huge loop when
  
  
  
  1.238     +15 -9     WebKit/WebView.subproj/WebFrame.m
  
  Index: WebFrame.m
  ===================================================================
  RCS file: /cvs/root/WebKit/WebView.subproj/WebFrame.m,v
  retrieving revision 1.237
  retrieving revision 1.238
  diff -u -r1.237 -r1.238
  --- WebFrame.m	9 Jul 2005 23:38:54 -0000	1.237
  +++ WebFrame.m	10 Jul 2005 00:45:53 -0000	1.238
  @@ -922,21 +922,27 @@
   - (void)_purgePageCache
   {
       // This method implements the rule for purging the page cache.
  -    int sizeLimit = [[[self webView] backForwardList] pageCacheSize];
  +    unsigned sizeLimit = [[[self webView] backForwardList] pageCacheSize];
  +    unsigned pagesCached = 0;
       WebBackForwardList *backForwardList = [[self webView] backForwardList];
       NSArray *backList = [backForwardList backListWithLimit: 999999];
  -
  -    int i;
  -    for (i = [backList count] - 1; i >= sizeLimit; i--){
  +    WebHistoryItem *oldestItem = nil;
  +    
  +    unsigned i;
  +    for (i = 0; i < [backList count]; i++){
           WebHistoryItem *item = [backList objectAtIndex: i];
           if ([item hasPageCache]){
  -            // Snapback items are never directly purged here.
  -            if ([item alwaysAttemptToUsePageCache]) {
  -                LOG(PageCache, "Purging back/forward cache, %@\n", [item URL]);
  -                [item setHasPageCache: NO];
  -            }
  +            if (oldestItem == nil)
  +                oldestItem = item;
  +            pagesCached++;
           }
       }
  +    
  +    // Snapback items are never directly purged here.
  +    if (pagesCached >= sizeLimit && ![oldestItem alwaysAttemptToUsePageCache]){
  +        LOG(PageCache, "Purging back/forward cache, %@\n", [oldestItem URL]);
  +        [oldestItem setHasPageCache: NO];
  +    }
   }
   
   - (WebFrameState)_state
  
  
  



More information about the webkit-changes mailing list