Adium using up 80-95% CPU

An instant messenger which can connect to AIM, GTalk, Jabber, ICQ, and more.
Post Reply
User avatar
eiboc8
Harmless
Posts: 7
Joined: Sat Dec 11, 2004 9:12 pm
Location: alexandria, VA

Adium using up 80-95% CPU

Post by eiboc8 »

i both have an ibook and a powerbook and i've seen it happen on all three of my mobile machines in OS 10.3.6. there'll be a time when i'm running on battery when the CPU util will just shoot up (in activity monitor) and it shows up Adium as using 80-95% of the CPU. you'll notice because the laptop becomes really hot all of a sudden, the fans kick in, and temperature monitor confirms that. since it's happened in all my portables more than 3 times already, i wonder if this is a bug in the software. i'm really new to the OS so i'm not sure how to log the activity in terminal.

hope there's a fix for this because adium is by far better than any open-source IM program out there.
Synapse
Latté
Posts: 87
Joined: Sun Dec 05, 2004 3:16 am
Location: Sydney, Australia
Contact:

Post by Synapse »

What version of Adium?

I've never had Adium use much CPU at all. Especially not randomly (or possibly not randomly) surging to huge numbers. Does it happen when you do something specific? Or is it plain and simple random?
User avatar
evands
Cocoaforge Admin
Posts: 3152
Joined: Thu Dec 02, 2004 10:55 pm
Location: Decatur, GA
Contact:

Post by evands »

While it is happening, you can capture sample data and send it to us (bugs@adiumx.com) so we can track down the problem.

The Activity Monitor program, available in Applications/Utilities, lets you select the Adium process and choose Sample from the Process menu.
The duck still burns.
--
My company: Saltatory Software. Check it out :)
User avatar
eiboc8
Harmless
Posts: 7
Joined: Sat Dec 11, 2004 9:12 pm
Location: alexandria, VA

Post by eiboc8 »

actually, it happens quite randomly but i will try and get a sample whenever it does. only thing that concerns me is that i leave my ibook unattended for a while and temperature monitor at one time showed a temperature of 67*C which concerned me becuse i didn't know how long it ran for that temperature. needless to say, i'm running adium wirelessly through my wireless router. so far, it's only happened to me 5 times (twice on both my PBs and 3 times on my ibook, which is what i use the most). happened 3 times while connected wirelessly and twice when connected through wire. also happens when i have activity monitor running (which most of the time, i am).

will definitely post the sample whenever it happens again. in the meantime, i hope it's not a bug.

edit: all machines running OS 10.3.6 & adium v0.72
ibook: 1.2GHz, 256 RAM (main machine)
PB 1: 1.5GHz, 512 RAM
PB 2: 1.3GHz, 512 RAM
Last edited by eiboc8 on Sun Dec 12, 2004 6:10 am, edited 2 times in total.
Stratrix
Harmless
Posts: 1
Joined: Fri Dec 10, 2004 6:37 am
Location: Vancouver
Contact:

Post by Stratrix »

i have a ibook 12" 1.2 ghz.. 512 DDR..
i also have this situation. this has occured to me for more than a few times. probably close to two dozen times. the symptoms noted by the topic starter is also the same as the symptoms i had. it just uses 100% cpu time, and then cpu temp keeps going up and up.

will some developers look into it? :P thanks.
- SpaRk a MiRaCLe -
thegeek
Harmless
Posts: 17
Joined: Sat Dec 11, 2004 4:45 am
Location: Tampa, FL
Contact:

Post by thegeek »

Sometimes I'll see the CPU jump up to 50% with kernel_task taking up a fair chunk of the power and Adium taking up the rest. I didn't know about the sample feature, so I'll have to check that out next time I see it happen.

Oh, just an 800 Mhz G3 iBook here (384 megs isn't pretty for compiling stuff, gotta upgrade)
User avatar
evands
Cocoaforge Admin
Posts: 3152
Joined: Thu Dec 02, 2004 10:55 pm
Location: Decatur, GA
Contact:

Post by evands »

Just to clarify, a simple statement of "Adium is using lots of CPU" can not possibly lead to any resolution whatsoever. We need hard data, as we do not see this behavior locally or we would have already fixed it :)
The duck still burns.
--
My company: Saltatory Software. Check it out :)
User avatar
Junpei
Muffin
Posts: 39
Joined: Mon Dec 13, 2004 5:05 am
Location: Northern California
Contact:

Post by Junpei »

I saw this bug just today! It reminds me a LOT of the same problem iChat has on occasion. I noticed it when my PB's fan suddenly started blazing, when I was just typing something in TextEdit. My status was "online" and Adium was in the background and had been sitting unused for a while. I had talked to someone on AIM and very briefly someone on a AOL Mobile Device earlier in the day. No conversation windows were open at the time Adium started eating CPU, though.

With iChat I can't remember if the problem was ever pinned down, though I experienced it from time to time when it too was sitting unused.
User avatar
eiboc8
Harmless
Posts: 7
Joined: Sat Dec 11, 2004 9:12 pm
Location: alexandria, VA

Post by eiboc8 »

here's a sample. finally. btw, adium's still using up 95% cpu at the moment. don't know if the sample will be too big for the forum but here it is:

Code: Select all

Analysis of sampling pid 341 every 10.000000 milliseconds
Call graph:
    255 Thread_110b
      255 _dyld_start
        255 _start
          255 NSApplicationMain
            255 -[NSApplication run]
              255 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
                255 _DPSNextEvent
                  255 BlockUntilNextEventMatchingListInMode
                    255 ReceiveNextEventCommon
                      255 RunCurrentEventLoopInMode
                        255 CFRunLoopRunSpecific
                          255 __CFRunLoopRun
                            241 __CFRunLoopDoTimer
                              233 __NSFireTimer
                                208 -[NSImageCell(NSPrivateAnimationSupport) _animationTimerCallback:]
                                  201 -[NSBitmapImageRep(NSBitmapImageFileTypeExtensions) setProperty:withValue:]
                                    196 -[NSGIFImageReader loadImage:]
                                      195 _NSGIFReadImage
                                        171 DecompressImage
                                          117 GetPixelIndex
                                            76 GetPixelIndex
                                            40 GetLZWCode
                                              35 GetLZWCode
                                              5 GetGIFDataPtr
                                                5 GetGIFDataPtr
                                            1 GetGIFDataPtr
                                              1 GetGIFDataPtr
                                          28 DecompressImage
                                          20 SetGIFPixel
                                            20 SetGIFPixel
                                          4 FinalizeLZWDecoder
                                            2 szone_free
                                              1 __spin_lock
                                                1 __spin_lock
                                              1 szone_free
                                            1 free
                                              1 free
                                            1 szone_size
                                              1 szone_size
                                          1 GetGIFDataPtr
                                            1 GetGIFDataPtr
                                          1 GetLZWCode
                                            1 GetLZWCode
                                        21 GetPixelIndex
                                          21 GetPixelIndex
                                        2 __bzero
                                          2 __bzero
                                        1 _NSGIFReadImage
                                      1 0x9325b330
                                        1 0x9325b330
                                    3 -[NSCFDictionary setObject:forKey:]
                                      2 CFStringCreateCopy
                                        2 CFRetain
                                          1 CFRetain
                                          1 __spin_lock
                                            1 __spin_lock
                                      1 CFDictionarySetValue
                                        1 CFRelease
                                          1 szone_free
                                            1 szone_free
                                    1 -[NSBitmapImageRep(NSBitmapImageFileTypeExtensions) setProperty:withValue:]
                                    1 CFRelease
                                      1 CFRelease
                                  3 +[NSDate dateWithTimeIntervalSinceNow:]
                                    1 -[NSCFDate initWithTimeIntervalSinceReferenceDate:]
                                      1 NSDeallocateObject
                                        1 NSDeallocateObject
                                    1 NSAllocateObject
                                      1 _internal_class_createInstanceFromZone
                                        1 malloc_zone_calloc
                                          1 malloc_zone_calloc
                                    1 objc_msgSend
                                      1 objc_msgSend
                                  2 _NSBitmapImageRepFromImage
                                    1 -[NSImage representations]
                                      1 _NSAppKitImgLock
                                        1 _NSAddExceptionHandlerForLock
                                          1 malloc_zone_malloc
                                            1 szone_malloc
                                              1 szone_malloc
                                    1 objc_msgSend
                                      1 objc_msgSend
                                  1 -[NSCell _contents]
                                    1 NSIncrementExtraRefCount
                                      1 NSIncrementExtraRefCount
                                  1 0x9325b130
                                    1 0x9325b130
                                19 __CFRunLoopTimerRescheduleWithAllModes
                                  14 __CFRunLoopTimerRescheduleWithAllModes
                                  5 mk_timer_arm
                                    5 mk_timer_arm
                                3 _NSRemoveHandler2
                                  2 szone_free
                                    2 szone_free
                                  1 NSZoneFree
                                    1 malloc_default_zone
                                      1 malloc_default_zone
                                2 NSPopAutoreleasePool
                                  2 NSPopAutoreleasePool
                                1 0x9325b134
                                  1 0x9325b134
                              6 __CFRunLoopTimerRescheduleWithAllModes
                                5 __CFRunLoopTimerRescheduleWithAllModes
                                1 mk_timer_arm
                                  1 mk_timer_arm
                              1 CFRetain
                                1 CFRetain
                              1 __CFRunLoopDoTimer
                            5 __CFRunLoopDoObservers
                              2 __CFArrayInit
                                1 _CFRuntimeCreateInstance
                                  1 malloc_zone_malloc
                                    1 malloc_zone_malloc
                                1 __CFArrayInit
                              1 0x9022a8c8
                                1 0x9022a8c8
                              1 CFRelease
                                1 __CFArrayDeallocate
                                  1 __CFArrayReleaseValues
                                    1 __CFArrayReleaseValues
                              1 __CFRunLoopDoObservers
                            5 mach_msg
                              5 mach_msg_trap
                                5 mach_msg_trap
                            3 __CFRunLoopModeFindSourceForMachPort
                              3 CFSetApplyFunction
                                2 __CFRunLoopFindSource
                                  1 __CFMachPortGetPort
                                    1 getpid
                                      1 getpid
                                  1 __CFRunLoopFindSource
                                1 CFSetApplyFunction
                            1 __CFRunLoopTimerRescheduleWithAllModes
                              1 __CFRunLoopTimerRescheduleWithAllModes
    255 Thread_1203
      255 _pthread_body
        255 forkThreadForFunction
          255 +[SLGaimCocoaAdapter createThreadedGaimCocoaAdapter]
            255 -[SLGaimCocoaAdapter init]
              255 CFRunLoopRun
                255 CFRunLoopRunSpecific
                  255 __CFRunLoopRun
                    255 mach_msg
                      255 mach_msg_trap
                        255 mach_msg_trap
    255 Thread_1303
      255 _pthread_body
        255 forkThreadForFunction
          255 +[NSURLConnection(NSURLConnectionInternal) _resourceLoadLoop:]
            255 -[NSRunLoop run]
              255 -[NSRunLoop runMode:beforeDate:]
                255 CFRunLoopRunSpecific
                  255 __CFRunLoopRun
                    255 mach_msg
                      255 mach_msg_trap
                        255 mach_msg_trap
    255 Thread_1403
      255 _pthread_body
        255 _loadRunLoop
          255 select
            255 select
    255 Thread_1503
      255 _pthread_body
        255 forkThreadForFunction
          255 +[NSURLCache _diskCacheSyncLoop:]
            255 -[NSRunLoop run]
              255 -[NSRunLoop runMode:beforeDate:]
                255 CFRunLoopRunSpecific
                  255 __CFRunLoopRun
                    255 mach_msg
                      255 mach_msg_trap
                        255 mach_msg_trap
    255 Thread_1603
      255 _pthread_body
        255 forkThreadForFunction
          255 -[AIContentController thread_createFilterRunLoopMessenger]
            255 CFRunLoopRun
              255 CFRunLoopRunSpecific
                255 __CFRunLoopRun
                  255 mach_msg
                    255 mach_msg_trap
                      255 mach_msg_trap
    255 Thread_1703
      255 _pthread_body
        255 __CFSocketManager
          255 select
            255 select
    255 Thread_1803
      255 _pthread_body
        255 CAPThread::Entry(CAPThread*)
          255 HALRunLoop::OwnThread(void*)
            255 CFRunLoopRunSpecific
              255 __CFRunLoopRun
                255 mach_msg
                  255 mach_msg_trap
                    255 mach_msg_trap
    255 Thread_1903
      255 _pthread_body
        255 TS_exception_listener_thread
          255 mach_msg
            255 mach_msg_trap
              255 mach_msg_trap
    255 Thread_1a03
      255 _pthread_body
        255 forkThreadForFunction
          255 +[WebFileDatabase _syncLoop:]
            255 -[NSRunLoop run]
              255 -[NSRunLoop runMode:beforeDate:]
                255 CFRunLoopRunSpecific
                  255 __CFRunLoopRun
                    255 mach_msg
                      255 mach_msg_trap
                        255 mach_msg_trap

Total number in stack (recursive counted multiple, when >=5):
        9       _pthread_body
        8       mach_msg
        8       mach_msg_trap
        7       CFRunLoopRunSpecific
        7       __CFRunLoopRun
        5       forkThreadForFunction

Sort by top of stack, same collapsed (when >= 5):
        mach_msg_trap        1790
        select        510
        GetPixelIndex        97
        GetLZWCode        36
        DecompressImage        28
        SetGIFPixel        20
        __CFRunLoopTimerRescheduleWithAllModes        20
        GetGIFDataPtr        7
        mk_timer_arm        6
Sample analysis of process 341 written to file /dev/stdout
Sampling process 341 each 10 msecs 300 times
[edit=evands]Added code block to make it readable[/edit]
User avatar
dchoby98
Adium Team
Posts: 479
Joined: Thu Dec 02, 2004 6:17 am
Location: Canada, Eh?
Contact:

Post by dchoby98 »

In the future, you really should attach a text file to avoid GIANT forum posts, and also to preserve formatting -- the 'sample' output is indented, and the indenting carries important meaning. In fact, it would help a lot if you attach the file, or at least paste it into a CODE block.
User avatar
evands
Cocoaforge Admin
Posts: 3152
Joined: Thu Dec 02, 2004 10:55 pm
Location: Decatur, GA
Contact:

Post by evands »

Hey, I know that sample! :)

Do you have a way to reproduce it? Did you have message windows open for buddies with animating buddy icons? Do you -have- buddies with animating buddy icons? Had you used tooltips (the on-mouse-hover window thing) in the Contact List to see an animating buddy icon?

Animating buddy icon animating buddy icon animating buddy icon?
The duck still burns.
--
My company: Saltatory Software. Check it out :)
User avatar
eiboc8
Harmless
Posts: 7
Joined: Sat Dec 11, 2004 9:12 pm
Location: alexandria, VA

Post by eiboc8 »

sorry about the last post. didn't really know how to preserve the indents and stuff.

anyway, actually, my buddy icons aren't animated at all. when i use GAIM, they are but adium doesn't animate those icons. also, this surge in CPU use happens when i have adium running in the background (list layout = mockie small, color theme = aqua(tiger), window style = smooth operator ). no running windows aside from away message and buddy list. most of the time, it happens while i'm away from my computer but i was browsing the web the last time it happened (and therefore was able to capture sample). what i end up doing usually is just shutting app down and restarting it again. frequently, i'd need to restart the machine as well because the app will do the same thing again anyway.

hope this helps.
User avatar
evands
Cocoaforge Admin
Posts: 3152
Joined: Thu Dec 02, 2004 10:55 pm
Location: Decatur, GA
Contact:

Post by evands »

eiboc8 wrote:sorry about the last post. didn't really know how to preserve the indents and stuff.
No worries. Put pastes like that within [ code ] and [ / code ] (no spaces).
anyway, actually, my buddy icons aren't animated at all. when i use GAIM, they are but adium doesn't animate those icons.
I meant, do any of your contacts, the ones on your buddy list, have animating icons?
also, this surge in CPU use happens when i have adium running in the background (list layout = mockie small, color theme = aqua(tiger), window style = smooth operator ). no running windows aside from away message and buddy list. most of the time, it happens while i'm away from my computer but i was browsing the web the last time it happened (and therefore was able to capture sample).
So in the time before it happened - not necessarily right as it is happening - have you used tooltips to view buddy information, perhaps of one who has an animating buddy icon? Or done anything in particular?
what i end up doing usually is just shutting app down and restarting it again. frequently, i'd need to restart the machine as well because the app will do the same thing again anyway.
So it does happen to you often? If so, I'll put together a debug build for you to run that perhaps will let us figure out what's going on.
hope this helps.
Thanks.
The duck still burns.
--
My company: Saltatory Software. Check it out :)
User avatar
eiboc8
Harmless
Posts: 7
Joined: Sat Dec 11, 2004 9:12 pm
Location: alexandria, VA

Post by eiboc8 »

none of my contacts have animating icons in my buddy list (i don't have anything displayed beside my buddy list at all except red, orange, and green status icons). i'm also not running the tooltip to view buddy info before or during the time it happens. i just notice the temperature shoot up and that's usually the time i look to activity monitor to see which app is using up CPU cycles. temperature monitor would alert me through system sound when i'm away. so as you can imagine, i'm nowhere near the computer during most of the time this happens, until my CPU temp reaches 60*F and that's when i check what's going on, only to find adium using up CPU cycles. btw, i've mentioned before that adium doesn't animate buddy icons on my machine :(


as for the debug build, i think i could deal with the build i have. it's somewhat of an inconvinience, i know, but then again, it's better than using AOL IM. perhaps another time ? :(
User avatar
evands
Cocoaforge Admin
Posts: 3152
Joined: Thu Dec 02, 2004 10:55 pm
Location: Decatur, GA
Contact:

Post by evands »

*shrug* It's impossible to fix problems without help. The bug has never affected me, and it does affect you... so my posting here in this thread is for your benefit, not mine.
The duck still burns.
--
My company: Saltatory Software. Check it out :)
User avatar
eiboc8
Harmless
Posts: 7
Joined: Sat Dec 11, 2004 9:12 pm
Location: alexandria, VA

Post by eiboc8 »

hi there. actually, i just re-installed everything because i wanted to put linux on my machine. the OS 10.3.7 update helped for the first few days until i had to re-partition my drive and now adium eats up CPU cycles like it did before except it does it at least a few times a day now. ichat behaves the same as i've described above. any way v0.73 coming out soon? just wondering.
User avatar
bgannin
Growl Team
Posts: 1817
Joined: Thu Dec 02, 2004 8:11 am
Location: ..here
Contact:

Post by bgannin »

Rather sounds like some network problems are hanging up your instant messengers and not a problem specific to Adium.
Try my software!

#define ADIUMX pimp //by me
#define QUESTION ((2b) || (!2b))
Have you hugged a programmer today?
Post Reply