[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