We have built a Flex 2 App which uses Flash Communication
Server. The Flex Client is quite large - it compiles at about
0.5MB. Everything is beautiful, but a couple of users have noticed
that their client runs incredibly slowly. I saw this happen today
with a user who had been doing fine, then suddenly froze up,
connecting to the FMS at an apparent 8Kbps over Broadband. The
problem was that the app was taking forever to return the pings to
Closing his browser and reopening brought no change.
Restarting his machine, however, fixed everything and he was
running at 700Kbps again.
We use a lot of NetStreams, and have noticed that the FCS
seems to hold open idle streams associated with a particular client
when no video is running on them any longer. When you close the
client browser, FCS then releases the streams. We have found no way
of being able to release the streams at will.
We wrote this application incredibly tightly, using weak
references for all event handlers, nulling all references by using
a Dispose() function and making sure that each class Disposed its
own children before releasing references. On my PC, with 4GB
running Vista in the IDE, the app starts at 10MB then rises to
about 20 before falling back again. Seems to be OK - but is it
possible that users with smaller amounts of available memory could
run into some sort of memory ceiling that could be causing these
There could be an awful lot going on here, so I'll try to hit
the big stuff first.
I assume only a few of your users have had this happen to
them, and that most people never see it.
The first thing I would do is aim the problem browser(s) at
this page and see what version of the Flash Player they have:
http://www.adobe.com/go/tn_15507 If they don't have 9,0,47,0 and there's no really solid
reason not to upgrade, then upgrade them and then wait and see if
There's also a lot of networking stuff that could be doing
this. FMS sends a lot of data,and it could be that the network
driver is flaky and - after sending and receiving so much data -
just dies. If you have many users who have no trouble and a couple
or a few that do, look for what's different.