The first click in the bookmarks bar asking to show the bookmarks past the edge of the bar (the menu on the right edge), makes Safari unresponsive for an extended period of time 8 seconds or more with a spinning beach ball, when there are many bookmarks within folders past the edge. The way Safari builds the submenu is extremely inefficient. -- To test... The bookmarks bar has many bookmarks, and a few subfolders, in particular two subfolders out-of-view with many bookmarks each: one folder has 700+ bookmarks, another 100+ bookmarks. 9 folders total, 6 of them hidden past the edge of the bookmarks bar. No RSS feeds in any of the folders. Launch Safari and then click on the right edge of the bookmarks bar to show the menu with the hidden bookmarks. Safari hangs for a long time with a spinning beach ball. Here is the report from Spin Control: -- 2006-04-18 10:12:53 -0400: Application Safari was found unresponsive for 8.75 seconds in the call stack shown. Call graph: 875 Thread_4903 875 0x5ca94 875 0x5cbec 875 NSApplicationMain 875 -[NSApplication run] 875 0x21828 875 -[NSApplication sendEvent:] 875 0x21d24 875 -[NSWindow sendEvent:] 875 0x827d0 875 -[NSControl mouseDown:] 875 0x822a4 875 -[NSPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:] 875 -[NSCarbonMenuImpl popUpMenu:atLocation:width:forView:withSelectedItem:withFont:] 875 _NSPopUpCarbonMenu1 875 _NSPopUpCarbonMenu2 875 _HandlePopUpMenuSelection5 875 PopUpMenuSelectCore(MenuData*, Point, double, Point, GDevice**, Rect const*, unsigned short, unsigned long, Rect const*, Rect const*, __CFString const*, OpaqueMenuRef**, unsigned short*) 866 DrawFirstMenu(Point, short, MenuSelectData*) 858 SendMenuOpening(MenuSelectData*, MenuData*, double, unsigned long, __CFDictionary*, unsigned char, unsigned char*) 858 SendMenuPopulate(MenuData*, OpaqueEventTargetRef*, unsigned long, double) 858 SendEventToEventTargetWithOptions 858 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) 858 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) 858 AppKitMenuEventHandler 858 -[NSMenu _populate:] 852 0x82698 852 0xaa728 841 0x49448 841 0x49fd0 820 0x49484 818 -[WebIconDatabase iconForURL:withSize:cache:] 818 -[WebIconDatabase(WebInternal) _iconsForIconURLString:] 802 -[WebFileDatabase objectForKey:] 792 -[NSData initWithContentsOfFile:] 792 _NSReadBytesFromFile 791 _NSReadBytesFromFileOrig 629 read 629 read 150 close 150 close 7 open 7 open 5 _NSReadBytesFromFileOrig 1 -[NSString(NSPathUtilities) getFileSystemRepresentation:maxLength:] 1 -[NSFileManager getFileSystemRepresentation:maxLength:withPath:] 1 _CFStringGetFileSystemRepresentation 1 CFStringGetFileSystemRepresentation 1 CFUniCharDecompose 1 CFUniCharDecompose 2 WebLRUFileListTouchFileWithPath 2 CFDictionaryGetValue 2 __CFDictionaryFindBuckets1b 1 cStringEqual 1 strcmp 1 strcmp 1 cStringHash 1 cuEnc64 1 cuEnc64 2 _decodeObject_old 2 _decodeClass 1 NSClassFromString 1 look_up_class 1 NXHashGet 1 classIsEqual 1 classIsEqual 1 _decodeClass 2 snprintf$LDBL128 1 __memcpy 1 __memcpy 1 __vfprintf$LDBL128 1 __vfprintf$LDBL128 1 -[NSObject release] 1 NSDecrementExtraRefCountWasZero 1 _CFDictionaryDecrementValue 1 _CFDictionaryDecrementValue 1 -[NSUnarchiver dealloc] 1 _CFRelease 1 __CFDictionaryDeallocate 1 __CFDictionaryDeallocate 1 NSAllocateObject 1 _internal_class_createInstanceFromZone 1 malloc_zone_calloc 1 malloc_zone_calloc 1 UniqueFilePathForKey 1 -[NSString(NSPathUtilities) _stringByStandardizingPathUsingCache:] 1 -[NSCFString getCharacters:range:] 1 _CFStringCheckAndGetCharacters 1 __CFStrConvertBytesToUnicode 1 __CFStrConvertBytesToUnicode 12 -[NSImage initWithData:] 10 +[NSBitmapImageRep imageRepsWithData:] 8 +[NSBitmapImageRep _imagesWithData:hfsFileType:extension:zone:] 3 CGImageSourceGetCount 3 _CGImagePluginImageCountTIFF 2 _cg_TIFFSetDirectory 2 TIFFReadDirectory 1 TIFFFetchStripThing 1 _TIFFCheckMalloc 1 _TIFFCheckMalloc 1 _cg_TIFFSetField 1 OkToChangeTag 1 OkToChangeTag 1 _cg_TIFFClientOpen 1 TIFFReadDirectory 1 TIFFDefaultDirectory 1 qsort 1 tagCompare 1 tagCompare 2 -[NSBitmapImageRep _initWithImageSource:imageNumber:properties:] 2 -[NSBitmapImageRep _readImageInfoWithImageSource:imageNumber:properties:] 1 -[NSBitmapImageRep setSize:] 1 objc_msgSendSuper 1 objc_msgSendSuper 1 GetImageProperty 1 CGImageSourceGetPropertiesAtIndex 1 makeImagePlus 1 CGImagePlusMatchesOptions 1 CFDictionaryGetValue 1 __CFDictionaryFindBuckets1b 1 _CFHash 1 _CFHash 1 CFStringCompare 1 CFStringCompareWithOptions 1 CFStringGetCharacters 1 __CFStrConvertBytesToUnicode 1 __CFStrConvertBytesToUnicode 1 CGImageSourceGetPropertiesAtIndex 1 makeImagePlus 1 initImageTIFF 1 _cg_TIFFSetDirectory 1 TIFFReadDirectory 1 TIFFDefaultDirectory 1 qsort 1 tagCompare 1 tagCompare 1 CGImageSourceGetType 1 CGImageReadGetBytePointer 1 CGImageReadGetBytePointer 1 -[NSConcreteData dealloc] 1 _internal_object_dispose 1 object_cxxDestructFromClass 1 object_cxxDestructFromClass 1 setjmp 1 sigprocmask 1 sigprocmask 2 -[NSImage addRepresentations:] 2 -[NSImage _newRepresentation:] 1 CFDictionaryRemoveValue 1 CFDictionaryRemoveValue 1 _NSAppKitImgLock 1 _NSAppKitImgLock 2 -[WebIconDatabase(WebInternal) _iconsBySplittingRepresentationsOfIcon:] 1 +[NSDictionary allocWithZone:] 1 +[NSDictionary allocWithZone:] 1 -[NSImage initWithSize:] 1 -[NSImage setBackgroundColor:] 1 -[NSImage setBackgroundColor:] 1 _NSRemoveHandler2 1 free 1 free 1 objc_msgSend_rtp 1 objc_msgSend_rtp 2 -[WebIconDatabase(WebInternal) _iconFromDictionary:forSize:cache:] 1 +[NSValue valueWithSize:] 1 _NSNewValue 1 -[NSValue init] 1 objc_msgSendSuper 1 objc_msgSendSuper 1 CFDictionaryGetValue 1 __CFDictionaryFindBuckets1b 1 objc_msgSend_rtp 1 objc_msgSend_rtp 17 0x494a0 16 0x468e0 16 0x46964 15 0xa5c54 15 0xa5c24 7 0xa5ba0 5 0xa5580 5 -[NSImage drawInRect:fromRect:operation:fraction:] 2 -[NSCachedImageRep draw] 1 _NSImageFromWindow 1 CGContextCopyWindowContentsToRect 1 contextCopyWindowContentsToRect 1 CGContextDelegateDrawWindowContents 1 ripc_DrawWindowContents 1 ripc_DrawImageObject 1 CGSImageDataLock 1 img_data_lock 1 CGColorTransformConvertNeedsCMS 1 resolveSource 1 CGColorSpaceRetain 1 _CFRetain 1 dyld_stub_OSSpinLockLock 1 dyld_stub_OSSpinLockLock 1 _NXFreeImageCache 1 0x1ca00 1 -[NSWindow dealloc] 1 -[NSApplication _removeWindow:] 1 -[NSApplication isRunning] 1 -[NSApplication isRunning] 2 -[NSImage _cacheRepresentation:] 2 -[NSImage _cacheRepresentation:stayFocused:] 2 -[NSImage _focusOnCache:] 2 -[NSCachedImageRep _initWithSize:depth:separate:alpha:allowDeep:] 2 _NXAllocateImageCache 2 GetSharedSpaceFor 2 NewCacheWindowInfo 2 CreateCacheWindow 2 CreateWindowNamed 2 _NXCreateWindow 2 CGSNewWindow 2 CGSNewWindowWithOpaqueShape 2 _CGSCreateWindow 2 mach_msg 2 mach_msg_trap 2 mach_msg_trap 1 CGContextSaveGState 1 CGGStackSave 1 CGGStateCreateCopy 1 CGColorRetain 1 _CFRetain 1 dyld_stub_OSSpinLockLock 1 dyld_stub_OSSpinLockLock 2 0xa540c 2 -[NSImage lockFocus] 2 -[NSCachedImageRep _initWithSize:depth:separate:alpha:allowDeep:] 2 _NXAllocateImageCache 2 -[NSView lockFocus] 2 -[NSImageCacheView lockFocusIfCanDraw] 2 -[NSView lockFocusIfCanDraw] 1 -[NSView _focusFromView:withContext:] 1 -[NSView _gatherFocusStateInto:upTo:withContext:] 1 -[NSView _gatherFocusStateInto:upTo:withContext:] 1 -[NSObject methodForSelector:] 1 -[NSObject methodForSelector:] 1 objc_msgSend_rtp 1 objc_msgSend_rtp 4 0xa5bbc 4 0xa592c 4 SetIconFamilyData 2 _ISGetStorageByIconFamilyHandle 2 CreateStorageRef(unsigned long, CIconStorageEntry*, CIconFamilyLoader*, unsigned long, unsigned long*) 2 CCArrayAddEntry 1 CCSegmentIsEntryUsed(DynamicArray*, unsigned long) 1 CCSegmentIsEntryUsed(DynamicArray*, unsigned long) 1 __memcpy 1 __memcpy 1 _ISReleaseStorageRef 1 _ISReleaseStorageRefInternal 1 _ISNotifyStorageEntryIsInvalid 1 ImageInvalidator(OpaqueISImageRef*) 1 dyld_stub_pthread_mutex_lock 1 dyld_stub_pthread_mutex_lock 1 _ISSetIconData 1 CIconStorageLocalEntry::SetData(long, char*, long) 1 __memcpy 1 __memcpy 4 0xa5bd8 4 0xa5b34 4 SetIconFamilyData 3 CIconStorageEntry::MakeIconFamilyHandle() 2 CIconStorageEntry::GetDataWithExtraction(long, unsigned char*, long*) 2 CIconStorageEntry::GetData(long) 2 GetIconLoader(unsigned long) 1 pthread_mutex_lock 1 pthread_mutex_lock 1 pthread_mutex_unlock 1 pthread_mutex_unlock 1 CIconStorageEntry::AppendCompressedData(long, char**) const 1 CIconStorageEntry::AppendCompressedData(long, char**) const 1 _ISGetStorageByIconFamilyHandle 1 CIconStorageEntry::SetIconFamilyPtr(IconFamilyResource const*, unsigned long) 1 CIconStorageEntry::SetIconFamilyPtr(IconFamilyResource const*, unsigned long) 1 0xa5c74 1 GetIconRefFromIconFamilyPtr 1 MakeIconRefFromImageInternal(OpaqueISImageRef*, OpaqueIconRef**) 1 CIconRefArray::FindMatchByImageLayer(OpaqueISImageRef*) 1 CArrayIterator::FindNext(void**, unsigned long*) 1 CArrayIterator::FindNext(void**, unsigned long*) 1 0x46900 1 -[NSMenuItem _setIconRef:] 1 CFDictionaryGetValue 1 __CFDictionaryFindBuckets1b 1 objc_msgSend_rtp 1 objc_msgSend_rtp 3 0x494d0 3 -[NSMenu insertItem:atIndex:] 1 -[NSConcreteNotification recycle] 1 -[NSObject release] 1 NSDecrementExtraRefCountWasZero 1 dyld_stub_OSSpinLockUnlock 1 dyld_stub_OSSpinLockUnlock 1 -[NSMenuItem setMenu:] 1 +[NSMenu(NSKeyEquivalents) _registerMenuItemForKeyEquivalentUniquing:] 1 _topMenuForKeyEquivalentUniquing 1 _NSTopLevelMenuForMenu 1 objc_msgSend_rtp 1 objc_msgSend_rtp 1 -[NSNotificationCenter postNotificationName:object:userInfo:] 1 +[NSConcreteNotification newTempNotificationWithName:object:userInfo:] 1 -[NSObject retain] 1 NSIncrementExtraRefCount 1 _CFDictionaryIncrementValue 1 __CFDictionaryFindBuckets2 1 __CFDictionaryFindBuckets2 1 0x4932c 1 objc_msgSend_rtp 1 objc_msgSend_rtp 11 0x49484 11 -[WebIconDatabase iconForURL:withSize:cache:] 11 -[WebIconDatabase(WebInternal) _iconsForIconURLString:] 11 -[WebFileDatabase objectForKey:] 11 -[NSData initWithContentsOfFile:] 11 _NSReadBytesFromFile 11 _NSReadBytesFromFileOrig 11 read 11 read 3 0x8270c 3 -[NSMenuItem copyWithZone:] 3 -[NSMenu copyWithZone:] 2 -[NSMenu insertItem:atIndex:] 2 -[NSMenuItem setMenu:] 1 +[NSMenu(NSKeyEquivalents) _addItem:toTable:] 1 -[NSMenuItem _desiredKeyEquivalent] 1 -[NSMenuItem userKeyEquivalent] 1 -[NSMenuItem _cacheUserKeyEquivalentInfo] 1 _userKEDefaultStringForItem 1 _NSMenuPathForMenuItem 1 -[NSCFString replaceCharactersInRange:withString:] 1 __CFStringCheckAndReplace 1 __CFStringChangeSizeMultiple 1 __CFStrAllocateMutableContents 1 CFAllocatorAllocate 1 malloc_zone_malloc 1 szone_malloc 1 szone_malloc 1 objc_msgSend_rtp 1 objc_msgSend_rtp 1 -[NSObject release] 1 NSDecrementExtraRefCountWasZero 1 _CFDictionaryDecrementValue 1 __CFDictionaryGrow 1 __CFDictionaryGrow 3 0x82724 3 -[NSMenu insertItem:atIndex:] 3 -[NSNotificationCenter postNotificationName:object:userInfo:] 3 _CFXNotificationPostNotification 3 __CFXNotificationPost 3 _nsnote_callback 2 AdjustCarbonMenuItem 2 CreateCarbonMenu 2 AddCarbonMenuItem 2 AppendMenuItemTextWithCFString(MenuData*, __CFString const*, unsigned long, unsigned long, unsigned short*) 2 MenuElement::ResolveAndSetData(long, __CFString const*, unsigned long, unsigned long, void const*) 2 RowStore::SetData(long, __CFString const*, unsigned long, unsigned long, void const*, unsigned long) 2 RowStore::GetRow(long, MenuElementRow**, unsigned char) 2 Storage::AllocateRowAtIndex(long, MenuElementRow**) 2 HIArray::InsertValueByPtr(unsigned long, void const*) 1 __bzero 1 __bzero 1 realloc 1 szone_realloc 1 szone_free 1 vm_deallocate 1 mach_msg 1 mach_msg_trap 1 mach_msg_trap 1 -[NSPopUpButtonCell synchronizeTitleAndSelectedItem] 1 objc_msgSend_rtp 1 objc_msgSend_rtp 4 ShowAndCacheMenu(MenuData*, Rect const*, __CFArray*) 4 CacheMenuPixelsWithTrackingData(OpaqueMenuRef*, Rect const*, MenuTrackingData const*) 4 CreateCGSWindowCopy 4 CGSNewWindowWithOpaqueShape 3 _CGSCreateWindow 3 mach_msg 3 mach_msg_trap 3 mach_msg_trap 1 __CFDictionaryInit 1 _CFRuntimeCreateInstance 1 CFAllocatorAllocate 1 malloc_zone_malloc 1 szone_malloc 1 szone_malloc 3 DrawMDEF(MenuSelectData*, CGPoint) 3 _DrawWindowContents 3 PaintWindow(WindowData*, OpaqueRgnHandle*, PaintReason, bool) 3 SendEvent(unsigned long, WindowData*, OpaqueRgnHandle*) 3 SendEventToEventTarget 3 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) 3 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) 3 WindowData::BaseHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) 3 HIView::DrawComposited(short, OpaqueGrafPtr*, __HIShape const*, unsigned long, HIView*, CGContext*) 3 HIView::RecursiveDrawComposited(__HIShape const*, unsigned long, HIView*, CGContext*, unsigned char) 3 HIView::RecursiveDrawComposited(__HIShape const*, unsigned long, HIView*, CGContext*, unsigned char) 2 HIView::RecursiveDrawComposited(__HIShape const*, unsigned long, HIView*, CGContext*, unsigned char) 2 HIView::SendDraw(short, OpaqueGrafPtr*, __HIShape const*, CGContext*) 2 HIView::DrawCacheOrSelf(short, __HIShape const*, CGContext*) 2 HIStandardMenuView::DrawSelf(short, __HIShape const*, CGContext*) 2 HIStandardMenuView::DrawItem(unsigned char, CGContext*) 2 HIStandardMenuView::DrawItemContent(CGRect const*, float, float, unsigned long, short, CGContext*) 2 DrawItemText(__CFString const*, float, unsigned short, unsigned long, CGRect const*, unsigned char, CGContext*, TextLayout const*, CGRect*, float*) 2 HIThemeDrawTextBox 2 DataEngine::DrawTextBox(__CFString const*, CGRect const*, _HIThemeTextInfo*, CGContext*) 2 TCoreTextEngine::DrawThemeTextBox(_HIThemeTextInfo*, CGRect const&, unsigned long, CGContext*) 2 CTLineDraw 2 TLine::DrawGlyphs(CGContext*) const 2 CGContextShowGlyphsWithAdvances 2 drawGlyphs 2 CGContextDelegateDrawGlyphs 2 ripc_DrawGlyphs 2 CGFontLockBitmaps 2 lock_bitmaps 2 build_missing_bitmaps 2 ats_32bit_create_glyph_bitmaps 2 ats_path_builder_get_paths 2 GCGetGlyphNativeOutlinePath 2 _eGCGetGlyphNativeOutlinePath 2 OldGlyphsCacheRun(TStrike*, int, unsigned long, unsigned short const*, void (*)(unsigned long, unsigned short const*, unsigned long, unsigned char* const*, void const*), void*) 1 ProcessQuadraticOutlinePath(unsigned long, unsigned short const*, unsigned long, unsigned char* const*, void const*) 1 EndPath 1 glyph_path_end 1 path_iterator_iterate 1 path_orientation_iterate 1 path_iterator_iterate 1 path_reverse_iterate 1 path_iterator_unrollpath 1 path_dilator_iterate 1 addCubeMonotonic 1 path_autohinter_iterate 1 CGSScanconverterAddCurveToPoint 1 approximateMonotonicCube 1 approximateMonotonicCube 1 approximateMonotonicCube 1 _eGetGlyphAddresses 1 GenerateGlyphData(GlyphVector*, unsigned short*, unsigned long, unsigned long*) 1 OFAGetGlyphDataInternal 1 SendStrikeMessage 1 SendOFAMessage 1 SendOFAStrikeMessage 1 SendOFAStrikeMessageInternal 1 SendFontManagementMessageWithMessageStatus 1 mach_msg 1 mach_msg_trap 1 mach_msg_trap 1 HIView::SendDraw(short, OpaqueGrafPtr*, __HIShape const*, CGContext*) 1 HIView::DrawCacheOrSelf(short, __HIShape const*, CGContext*) 1 HIMenuContentView::DrawSelf(short, __HIShape const*, CGContext*) 1 HIThemeDrawMenuBackground 1 CGContextDrawPath 1 ripc_DrawPath 1 ripc_Render 1 ripc_GetColor 1 ripc_GetPattern 1 CGGStateResetClip 1 maybeCopyClipState 1 clipStateCopy 1 CGClipStackCreateMutableCopy 1 calloc 1 szone_calloc 1 __bzero 1 __bzero 1 PrepareMenuWindow 1 GetMenuWindow(OpaqueMenuRef*, unsigned short, Rect const*, OpaqueRgnHandle*) 1 CreateCustomWindow 1 CreateNewWindowInternal(WindowDefSpec const*, unsigned long, unsigned long, Rect const*, OpaqueWindowPtr**) 1 NewWindowCommon(WindowData**, unsigned long, unsigned long, WindowDefSpec const*, Rect const*, unsigned char const*, unsigned char, OpaqueWindowPtr*, long, void*, unsigned short*, bool) 1 HIObjectCreate 1 HIObject::Create(__CFString const*, OpaqueEventRef*, HIObject**) 1 SendEventToEventTargetWithOptions 1 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) 1 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) 1 HIObject::EventHook(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) 1 HIObject::HandleClassHIObjectEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) 1 AppleWindowDef::Initialize(OpaqueEventRef*) 1 WindowData::Initialize(OpaqueEventRef*) 1 WindowData::FinishConstruction(unsigned long, unsigned long, Rect const*, unsigned char*, void*, OpaqueWindowPtr*, OpaqueControlRef*) 1 CalculateWindowRegions(WindowData*, bool) 1 ResetPlatformWindowShape 1 SetPlatformWindowShape 1 CGSSetWindowShapeWithWeighting 1 _CGSSetWindowShapeInline 1 mach_msg 1 mach_msg_trap 1 mach_msg_trap 9 TrackMenuCommon(MenuSelectData&, unsigned char*) 9 IsUserStillTracking(MenuSelectData*, unsigned char*) 9 AcquireNextEventInMode 9 ReceiveNextEventCommon 9 RunCurrentEventLoopInMode 9 CFRunLoopRunSpecific 9 __CFRunLoopRun 6 mach_msg 6 mach_msg_trap 6 mach_msg_trap 3 __CFRunLoopDoObservers 3 _handleWindowNeedsDisplay 3 0x1acb0 3 -[NSWindow displayIfNeeded] 3 -[NSView displayIfNeeded] 3 -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] 3 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 3 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 3 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 3 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 3 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 3 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] 3 -[NSView _drawRect:clip:] 3 0x828ac 3 -[NSControl drawRect:] 3 -[NSPopUpButtonCell drawWithFrame:inView:] 3 -[NSMenuItemCell calcSize] 3 -[NSImage size] 3 -[NSImage _expand] 3 -[NSImage _expandRep:] 2 +[NSImageRep imageRepsWithContentsOfFile:] 2 +[NSBitmapImageRep _imageRepsWithData:hfsFileType:extension:] 2 +[NSBitmapImageRep _imagesWithData:hfsFileType:extension:zone:] 2 CGImageSourceGetType 2 0x4 2 _CGImagePluginIdentifyJPEG 2 _CGImagePluginIdentifyJPEG 1 NSHFSTypeOfFile 1 FSGetCatalogInfo 1 PBGetCatalogInfoSync 1 GetFSRefAttributes(FSMount*, FSRefPrivate const*, unsigned long, FSAttributeInfo*, unsigned long, char*) 1 FSMount::getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*) 1 VolFSMount::_getattrs(unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned char*) 1 GetVolFSAttributes(VolumeInfo*, unsigned long, char const*, unsigned long, unsigned long, FSAttributeInfo*, unsigned long, unsigned long, FSVolAttributeInfo*, unsigned char*) 1 getattrlist_retry(unsigned, unsigned long, char const*, unsigned long, attrlist*, void*, unsigned long, unsigned long) 1 getattrlist 1 getattrlist 875 Thread_4a03 875 _pthread_body 875 forkThreadForFunction 875 +[WebFileDatabase _syncLoop:] 875 -[NSRunLoop run] 875 -[NSRunLoop runMode:beforeDate:] 875 CFRunLoopRunSpecific 875 __CFRunLoopRun 875 mach_msg 875 mach_msg_trap 875 mach_msg_trap 875 Thread_4b03 875 _pthread_body 875 forkThreadForFunction 875 +[NSURLConnection(NSURLConnectionInternal) _resourceLoadLoop:] 875 CFRunLoopRunSpecific 875 __CFRunLoopRun 875 mach_msg 875 mach_msg_trap 875 mach_msg_trap 875 Thread_4c03 875 _pthread_body 875 forkThreadForFunction 875 +[NSURLCache _diskCacheSyncLoop:] 875 CFRunLoopRunSpecific 875 __CFRunLoopRun 875 mach_msg 875 mach_msg_trap 875 mach_msg_trap 875 Thread_4d03 875 _pthread_body 875 forkThreadForFunction 875 -[AsyncDB _run:] 875 -[NSConditionLock lockWhenCondition:] 875 pthread_cond_wait 875 semaphore_wait_signal_trap 875 semaphore_wait_signal_trap 875 Thread_4e03 875 _pthread_body 875 __CFSocketManager 875 select 875 select Total number in stack (recursive counted multiple, when >=5): 9 mach_msg 9 mach_msg_trap 8 objc_msgSend_rtp 5 _pthread_body Sort by top of stack, same collapsed (when >= 5): mach_msg_trap 2639 select 875 semaphore_wait_signal_trap 875 read 640 close 150 objc_msgSend_rtp 8 open 7 _NSReadBytesFromFileOrig 5
The sample shows that the time is being spent in WebIconDatabase.
This sounds similar to bug 9499, where a large number of items in the bookmark bar would lead to slowdowns when scrolling a page.
Hugo, is the bug still visible in the latest Webkit nightly?
(In reply to comment #3) > Hugo, is the bug still visible in the latest Webkit nightly? > Hugo without your help we are unable to confirm or deny existence of the bug in the latest Webkit. My personal tests failed to replicate the bug so I mark the bug as WORKSFORME. Feel free to reopen the bug if the problem is still replicable in the latest Webkit.