Hey flexers,

My team has been building an application that's graphically heavy.  The 
heaviest portion consists of two sprites that are ~4000x4000 pixels and 
have a bunch of sprite children and ~20 bitmaps each.  The content ends 
up being ~30 MB for both sprites total, give or take 20 MB.  When it's 
time to switch to new sprites with new content we make sure there are no 
more references to the two old sprites.  I've verified that garbage 
collection does clean up the old content each time and memory stays 
about even.  However, quite commonly (maybe 1 out of 3 times) when 
switching to two new sprites the Flash Player will crash.  I have good 
reason to believe it's the act of garbage collection that is causing 
this crash.  Here's why:

(1) If I'm in the Flex Profiler and I've switched to two new sprites and 
then I hit "run garbage collection" it will sometimes crash right at 
that moment.
(2) If I use Grant Skinner's posted hack of forcing garbage collection 
it will sometimes crash right when the garbage collection is forced.
(3) If I keep a reference to all the old sprites (so garbage collection 
won't collect them) it doesn't crash even after switching to new sprites 
over 25 times, however the application uses more and more memory.

Can someone provide some enlightenment as to how we proceed?  We don't 
want the application crashing frequently but we also don't want to hog 
the user's memory (and eventually cause a crash anyway).  Making the 
sprites smaller is an obvious route but one of the last routes we want 
to take because they're that large for a reason.

Thanks.  We appreciate any help offered!

Aaron


Reply via email to