<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Memory cache live resources repeatedly purged during painting"
href="https://bugs.webkit.org/show_bug.cgi?id=144104">144104</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Memory cache live resources repeatedly purged during painting
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>Product</th>
<td>WebKit
</td>
</tr>
<tr>
<th>Version</th>
<td>528+ (Nightly build)
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>OS</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>Normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P2
</td>
</tr>
<tr>
<th>Component</th>
<td>Page Loading
</td>
</tr>
<tr>
<th>Assignee</th>
<td>webkit-unassigned@lists.webkit.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>koivisto@iki.fi
</td>
</tr></table>
<p>
<div>
<pre>On some PLT pages (like nytimes.com) we get into state where painting repeatedly purges live bitmaps. This slows down page loads significantly.
13 WebCore::BitmapImage::draw(WebCore::GraphicsContext*, WebCore::FloatRect const&, endMode, WebCore::ImageOrientationDescription) (in WebCore) + 447 [0x127c727]
13 WebCore::MemoryCache::pruneLiveResourcesToSize(unsigned int, bool) (in WebCore) + 251
13 WebCore::BitmapImage::destroyDecodedData(bool) (in WebCore) + 191 [0x127acfb]
6 WebCore::ImageSource::clear(bool, unsigned long, WebCore::SharedBuffer*, bool) (in WebCore) + 39
| 6 CGImageSourceCreateIncremental (in ImageIO) + 199 [0x250e98bb]
| 2 _CGImageSourceCreate (in ImageIO) + 61 [0x250abd79]
| + 1 CFAllocatorAllocate (in CoreFoundation) + 95 [0x23fdea53]
| + 1 _CFRuntimeCreateInstance (in CoreFoundation) + 289 [0x23fdec51]
| + 1 malloc_zone_malloc (in libsystem_malloc.dylib) + 87 [0x32ae6da7]
| + 1 szone_malloc_should_clear (in libsystem_malloc.dylib) + 61 [0x32ae6e19]
| 2 _CGImageSourceCreate (in ImageIO) + 41 [0x250abd65]
| 1 _CGImageSourceCreate (in ImageIO) + 157 [0x250abdd9]
| + 1 _pthread_mutex_init (in libsystem_pthread.dylib) + 3 [0x32b3cadf]
| 1 _CGImageSourceCreate (in ImageIO) + 227 [0x250abe1f]
| 1 CFSetCreateMutable (in CoreFoundation) + 93 [0x23fefa75]
| 1 CFBasicHashCreate (in CoreFoundation) + 116 [0x23fdf594]
| 1 _CFRuntimeCreateInstance (in CoreFoundation) + 289 [0x23fdec51]
| 1 malloc_zone_malloc (in libsystem_malloc.dylib) + 87 [0x32ae6da7]
| 1 szone_malloc_should_clear (in libsystem_malloc.dylib) + 219 [0x32ae6eb7]
| 1 tiny_malloc_from_free_list (in libsystem_malloc.dylib) + 181 [0x32ae80b5]
3 WebCore::ImageSource::clear(bool, unsigned long, WebCore::SharedBuffer*, bool) (in WebCore) + 23
| 2 CFRelease (in CoreFoundation) + 493 [0x23fe4de1]
| + 2 _CGImageSourceFinalize (in ImageIO) + 79 [0x250b6967]
| + 2 CFRelease (in CoreFoundation) + 493 [0x23fe4de1]
| + 2 _CGImageReadFinalize (in ImageIO) + 433 [0x250cd985]
| + 2 CFRelease (in CoreFoundation) + 597 [0x23fe4e49]
| + 2 objc_object::sidetable_release(bool) (in libobjc.A.dylib) + 163 [0x32483d5b]
| + 1 -[WebCoreSharedBufferData dealloc] (in WebCore) + 39 [0x1b54b3f]
| + ! 1 WebCoreObjCScheduleDeallocateOnMainThread(objc_class*, objc_object*) (in WebCore) +
| + ! 1 _Unwind_SjLj_Register (in libunwind.dylib) + 5 [0x32b4fae5]
| + 1 -[WebCoreSharedBufferData dealloc] (in WebCore) + 75 [0x1b54b63]
| + 1 object_dispose (in libobjc.A.dylib) + 11 [0x32472617]
| + 1 objc_destructInstance (in libobjc.A.dylib) + 31 [0x324725f3]
| + 1 object_cxxDestructFromClass(objc_object*, objc_class*) (in libobjc.A.dylib) + 115
| + 1 -[WebCoreSharedBufferData .cxx_destruct] (in WebCore) + 37 [0x1b54c81]
| 1 CFRelease (in CoreFoundation) + 1253 [0x23fe50d9]
| 1 _os_lock_handoff_lock (in libsystem_platform.dylib) + 35 [0x32b38473]
3 WebCore::ImageSource::clear(bool, unsigned long, WebCore::SharedBuffer*, bool) (in WebCore) + 51
| 1 WebCore::SharedBuffer::createCFData() (in WebCore) + 147 [0x1b54edf]
| + 1 NSAllocateObject (in Foundation) + 101 [0x24d50b55]
| 1 WebCore::SharedBuffer::createCFData() (in WebCore) + 203 [0x1b54f17]
| + 1 _os_lock_handoff_trylock (in libsystem_platform.dylib) + 35 [0x32b383cf]
| 1 WebCore::SharedBuffer::createCFData() (in WebCore) + 9 [0x1b54e55]
1 WebCore::ImageSource::clear(bool, unsigned long, WebCore::SharedBuffer*, bool) (in WebCore) + 61
1 CGImageSourceUpdateData (in ImageIO) + 893 [0x250e9c59]
1 CGImageReadCreateWithData (in ImageIO) + 43 [0x250abb93]
1 CFDataGetLength (in CoreFoundation) + 3 [0x23fdf273]</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>