powered by Jive Software

CPU 100% when chatting

The Avatar that I use is a .gif with a transparant background. Whenever people open up a chat window with me. Their CPU spikes to 100% and stays there (mine is unaffected). It’'s annoying. If I convert the .gif to .jpg, all is well in the world.

Any idea why? I would attach the avatar to this post, but I don’‘t know how. I’'ll email it is someone provides me with a email address.

Thanks all.

Hi,

you may upload it at http://imageshack.us/ if you don’'t mind. Is it just a special transparent picture or do you see this problem with all transparent gif files?

You should be able to convert it to PNG - I also use a transparent PNG image and up to now no-one did complain.

LG

PS: If you have the time and are interested you may read Different ways to obtain a thread dump of the Java VM[/url] and try to get a thread dump of one client with 100% CPU. It should help to identify the looping thread.

The image has been uploaded to:

http://img405.imageshack.us/img405/5103/pimp2vr.gif

The stack traces, I did create four, and they all look different but somehow the same:


1:

“Image Animator 2” daemon prio=4 tid=0x0bcdec50 nid=0x1e8 runnable

at java.lang.Math.floor(Unknown Source)

at java.lang.Math.round(Unknown Source)

at java.awt.image.AreaAveragingScaleFilter.calcRow(Unknown Source)

at java.awt.image.AreaAveragingScaleFilter.accumPixels(Unknown Source)

at java.awt.image.AreaAveragingScaleFilter.setPixels(Unknown Source)

at sun.awt.image.ImageDecoder.setPixels(Unknown Source)

at sun.awt.image.GifImageDecoder.sendPixels(Unknown Source)

at sun.awt.image.GifImageDecoder.parseImage(Native Method)

at sun.awt.image.GifImageDecoder.readImage(Unknown Source)

at sun.awt.image.GifImageDecoder.produceImage(Unknown Source)

at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

“Image Animator 3” daemon prio=4 tid=0x0bcdeac8 nid=0x1e4 runnable

at java.lang.Thread.yield(Native Method)

at sun.awt.image.GifFrame.dispose(Unknown Source)

at sun.awt.image.GifImageDecoder.produceImage(Unknown Source)

at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

/code


2:

“Image Animator 3” daemon prio=4 tid=0x0bcdeac8 nid=0x1e4 runnable

at sun.awt.image.ImageDecoder.setPixels(Unknown Source)

at sun.awt.image.GifImageDecoder.sendPixels(Unknown Source)

at sun.awt.image.GifImageDecoder.parseImage(Native Method)

at sun.awt.image.GifImageDecoder.readImage(Unknown Source)

at sun.awt.image.GifImageDecoder.produceImage(Unknown Source)

at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

/code


3:

“Image Animator 3” daemon prio=4 tid=0x0bcdeac8 nid=0x1e4 runnable

at sun.awt.image.GifImageDecoder.parseImage(Native Method)

at sun.awt.image.GifImageDecoder.readImage(Unknown Source)

at sun.awt.image.GifImageDecoder.produceImage(Unknown Source)

at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

/code


4:

“Image Fetcher 0” daemon prio=8 tid=0x0bd48240 nid=0x798 in Object.wait()

at java.lang.Object.wait(Native Method)

  • waiting on <0x036ccde8> (a java.util.Vector)
    at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
  • locked <0x036ccde8> (a java.util.Vector)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

“Image Animator 0” daemon prio=4 tid=0x0bf9bc78 nid=0x39c runnable

at sun.awt.image.GifImageDecoder.parseImage(Native Method)

at sun.awt.image.GifImageDecoder.readImage(Unknown Source)

at sun.awt.image.GifImageDecoder.produceImage(Unknown Source)

at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

“Image Animator 0” daemon prio=4 tid=0x0bcdec50 nid=0x1ec runnable

at java.lang.Thread.yield(Native Method)

at sun.awt.image.GifFrame.dispose(Unknown Source)

at sun.awt.image.GifImageDecoder.produceImage(Unknown Source)

at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

“Image Animator 3” daemon prio=4 tid=0x0bcdeac8 nid=0x1e4 runnable

at java.lang.Thread.yield(Native Method)

at sun.awt.image.GifFrame.dispose(Unknown Source)

at sun.awt.image.GifImageDecoder.produceImage(Unknown Source)

at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)

at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)

at sun.awt.image.ImageFetcher.run(Unknown Source)

/code

Hi

I did try it with another 25x31 pixel gif, this did not cause a problem.

I did convert it to 32x32 -> http://img294.imageshack.us/img294/1632/pimp2vr9sr.gif and for me it runs fine. The 25x31 as a .png also runs fine: http://img311.imageshack.us/img311/2411/pimp2vr8qy.png so it seems to be a Spark or Java issue. You can track it here: SPARK-287

LG