Ryan, 

Well, it is a big popup, based on a customised Panel component, with 3
states, declared in MXML. All elements are bound to the single data
structure which is passed as the parameter at the init stage.

I am using my own caching PopUpManager, which tries to find the object
in the dictionary before using createPopUp() method.

I know about the weak reference parameter in the event subscription,
but this is not a case - this panel uses  mxml bindings, i.e.
click="fClickedThat()". 

As I said, I ran it under profiler and every time
PopUpManager.addPopup() makes it visible I can see that the only thing
which is growing in numbers of instances are childConstraintInfo
objects (256 instances per each call). When I hide the panel using
removePopup() - the number of childConstraintInstances does not
decrease. But if I click on the GC button - it goes back to 256
instances (the panel still exists).
I am 100% sure that none of our custom objects are being created
during the process of popup creation.

Of course Profiler  does not show all the objects (I use standard
filter on flash.*), but if I turn it off, Profiler just dies on the
4Gb Quad-core machine. And I am unable to turn on the allocation trace
by the same reason - it just kills JVM. 

So we have to find a workaround for this problem. Simplification of
the panel is not an option so far - for complex tasks you have to use
complex tools, hammer & axe are not always the ultimate answer :)

PS I know that we already reached some limits in our project which are
unknown probably to 99% of developers and most sadly unknown to the
Flex Team.

Here is the example:
http://bugs.adobe.com/jira/browse/FB-12492
This popup window has too many mxml entries (due to the states), so it
takes more than 90 seconds to compare it with the previous revision. I
guess that, if people were creating complex interfaces in enterprise
environment, there will be a lot of fuss around this stupid Java
compare tool.

We also have 4 SWC objects embedded in that panel (graphical
components like buttons or icons developed in Flash). And the Flex
Builder does not like it either - it displays the SWC objects in
Design View only sometimes depending on its own mood and wind
direction. I am unable even to submit a bug on it, as all our small
test cases work fine, the problems appear only in the project environment.


Cheers,
Dmitri.



--- In flexcoders@yahoogroups.com, "Ryan Graham" <ryan.gra...@...> wrote:
>
> 
> Hmm... at this point I suppose it depends on what you are doing with
> your popup component. We'd have to see some code to try and pinpoint
> memory-leaks.
> 
>  
> 
> Are you creating a new popup everytime the user requests it, or do you
> create one instance and use the popup manager to show and hide that
> instance, setting data properties accordingly? Are you adding listeners
> to descendant components in the popup? If so are you using weak
> references? For example:
> 
>  
> 
> addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
> 
>  
> 
> and not
> 
>  
> 
> addEventListener(MouseEvent.CLICK, onClick)
> 
>  
> 
> HTH,
> 
> Ryan
> 
>  
> 
> From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On
> Behalf Of Dmitri Girski
> Sent: Monday, February 09, 2009 5:37 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Memory consumption by the browser
> 
>  
> 
> Hi Ryan,
> 
> I tested it on IE7, Chrome, Firefox3, Safari (Mac). They all perform
> in consistent manner, Safari is less greedy, IE & FF are the most
> hungry ones.
> 
> But as I said before, I can't see this footprint shrink when I
> minimise browsers. I even set this secret variable for FF -
> trim_on_minimise - no effect. How come?
> 
> Cheers,
> Dmitri.
> 
> --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
> , "Ryan Graham" <Ryan.Graham@> wrote:
> >
> > 
> > Is this in all browsers? I know IE 6 (maybe even 7?) has issues with
> > memory management. I consistently see memory leak-like behavior with
> IE
> > 6, for example: 
> > 
> > 
> > 
> > Start debug session for basic app - IE reports 60+ MB memory usage
> with
> > a value that steadily climbs as I use the app.
> > 
> > Minimize the browser, then bring it back to view - IE memory usage
> drops
> > to ~13 MB.
> > 
> > Use the app for a few more minutes, memory footprint grows in size a
> few
> > MB.
> > 
> > Minimize, then restore - IE footprint back down to ~13 MB or so.
> > 
> > 
> > 
> > I don't see the same behavior in FF, which is good. The issue might be
> > with memory management within that particular browser, and not the
> Flash
> > Player. 
> > 
> > 
> > 
> > HTH,
> > 
> > Ryan
> > 
> > 
> > 
> > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
> [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
> ] On
> > Behalf Of Dmitri Girski
> > Sent: Sunday, February 08, 2009 11:33 PM
> > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> 
> > Subject: [flexcoders] Memory consumption by the browser
> > 
> > 
> > 
> > Hi everybody,
> > 
> > I am trying to solve the problem when my application consumes a lot of
> > memory.
> > When application starts in the browser, Windows/Mac reports the size
> > of browser process around 150Mb.
> > Then, if you start opening/closing the same popup window (which is
> > actually being cached by application), the browser starts to grow. 
> > Each appearance of popup consumes around 1.5Mb [sic!] (the consumer is
> > childConstraintInfo, around 256 instances)
> > When you close the pop up, memory sometimes goes down, but never to
> > the original value. Never ever. At least 100-200kb more at a time.
> > 
> > OK, when I use a profiler, it shows that application consumes 42Mb. 
> > Profiler shows no leaks, even if the number of instances are growing,
> > when I click on GarbageCollector icon it always goes to the original
> > figures, including childConstraintInfo instances. Total Memory stays
> > at 42Mb mark. Good.
> > But the problem is that browser's footprint is still growing. After a
> > couple of hours of work with application it grows to 500-600Mb.
> > 
> > In profiler everything looks perfect. In reality - 600Mb app on 1Gb
> > system makes it dead.
> > 
> > The question is, what makes browser to be so memory hungry? Why it
> > consumes more & more memory without any attempt to release it? 
> > 
> > The simplest action with panel instance addPopUp/removePopUp consumes
> > 1.5Mb of memory - I don't believe it. Well, the panels has 3 states
> > and complex layout with ~100 elements. But what makes it so different
> > to the "Hello, World" popup, which seems to be right?
> > 
> > Thank you for any thought in advance.
> > 
> > Regards,
> > Dmitri.
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > This message is private and confidential. If you have received it in
> error, please notify the sender and remove it from your system.
> >
> 
> 
> 
> 
> 
> This message is private and confidential. If you have received it in
error, please notify the sender and remove it from your system.
>


Reply via email to