A couple of days ago, I posted a message regarding extremely high CPU usage
in an application I was building. Eventually, I concluded that the problem
was not the Flex app, but some other processes on the same machine.

However, I have since found out that I was incorrect -- the problem was the
Flex app after all. So for anyone who read the original post and wondered
what might be happening -- in particular, Rick Fotis, who attempted to help
-- here's what was going on:

The issue was caused by the combination of a creationPolicy setting and the
use of a set of skins called iCandy, from the ScaleNine site. Now -- I'm not
criticizing the developer of the skins. I don't know enough about what
really went on. But I do know this: I had set the creationPolicy on a
TabNavigator to "all." When I removed this, the CPU usage dropped markedly.
But when I went into one of the tabs, the usage picked back up, although not
as much.

I removed the reference to the skin stylesheet. The CPU usage did what it
was supposed to do: spike occasionally, then drop to nothing.

So I can only conclude that the skins were causing continual redraws in the
background. I've found some blog posts from the folks at EffectiveUI
discussing performance problems with stateful skins, so I'm not the only one
who's encountered it. Here's one of the posts:
http://patrickhansen.com/blog/index.php/2009/03/05/flex-stateful-skins-vs-stateless
.

Moral is: be careful of stateless skins, even though they seem to be
recommended by Adobe. The use of a large number of skinned components
(checkboxes, text inputs,  etc.) can evidently be a problem -- and I didn't
even have that many.

I don't know enough to make a technical analysis of the issue; but I hope
this may save someone else a few hours (or in my case, days) of pain.

-- 
Thanks,

Tom

Tom McNeer
MediumCool
http://www.mediumcool.com
1735 Johnson Road NE
Atlanta, GA 30306
404.589.0560

Reply via email to