Thanks for that Alex, I'd always thought there was some compile-time voodoo Fx3 did that enabled the debugger. That's good to know.
-J On Fri, May 9, 2008 at 3:51 PM, Alex Harui <[EMAIL PROTECTED]> wrote: > You can profile a Flex 2 app in the Flex 3 profiler. You can profile > any debug swf really. > > > > IE never worries, it just keels over and dies. > > > > Here's my top-five: > > > > 1. SWF size is not going to be your issue as much as run-time memory. I've > heard of folks with multi-MB swfs and they aren't complaining that IE can't > handle it. All complaints I've seen is about how much process memory (on > Windows, the memory number you'll see next to your iexplorer.exe instance in > the Task Manager) the application uses up and that, when it gets too big, IE > dies. The number I keep hearing is in the hundreds of MBs. OK, so folks on > slow networks wish the SWF was smaller so it would download faster, but once > you get past that, it is all about run-time memory. > > > > 2. The Flex 3 Profiler can definitely help you tune your application, but > it does not report the same numbers as the Task Manager because it only > reports actionscript objects and not all of the other resources the player > uses from the OS such as, on Windows, DIBs, HWNDs, DCs, etc. If you suck in > lots of huge images, the Profiler will not show that but the Task Manager > will, and that's the fastest way to get IE to choke. > > > > 3. Modularity is always a good thing. Pay as you go is usually a good > thing. Only loading what you need and getting rid of it when you don't need > it is usually a good thing. > > > > 4. "Modules" is a feature designed to assist the development of large > applications by not requiring that you compile and link every byte of the > SWF on every change, and to assist startup time by allowing you to load the > SWF bytes you don't need at startup after startup. A single SWF will use > less run-time memory than the same SWF broken into modules unless some of > those modules are never loaded or get punted when no longer needed. > > > > 5. Application run-time memory usage can be code-bound, display-object > bound or data-bound. A medium-sized app (500K SWF) I just looked at used up > 35MB of process memory at startup. Roughly 10MB is just IE, another 10MB is > the Player and of the remaining 15MB, 80% was attributed to the code. SWFs > are zipped and expand at about 3:1, then are JIT-ed to machine code and > other structures are setup to support classes, methods, etc. A SWF does not > run from its binary as much as an .EXE file does. That app is considered > code-bound, at least at startup. Now, every UIComponent is at least 6K, > controls and containers are proportionally larger, so somewhere short of > 1000 display objects, you've sucked up 6MB or more. 1000 seems like a lot, > but it is 10 tabs in a tabNav with a 10x10 datagrid on it. Charts may have > lots of display objects too. So if you have lots of grids and charts and > not a lot of code, then you are display-object bound. Start bringing in > bitmaps or requiring bitmap caches, and you'll definitely be display-object > bound. Finally, some apps bring in 10000 data records, some which are > deeply nested. A simple bindable object is at least 50 bytes so with > complex data objects, you can really eat up tons of memory and be > data-bound. How you optimize for each scenario is pretty straightforward, > but you have to know which scenario you are in, and the Profiler is not > going to fully measure the memory that goes to code and display objects. > > > > Hope that helps, Rick's responses were definitely more fun to read. > > -Alex > > > ------------------------------ > > *From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On > Behalf Of *Josh McDonald > *Sent:* Thursday, May 08, 2008 9:12 PM > *To:* flexcoders@yahoogroups.com > *Subject:* Re: [flexcoders] How big does a SWF get before IE starts to > worry? > > > > Thanks for those tips, although I don't think I can action any of them on > this project, given it's targeting Flex 2 (no profiler, no rpc source), I'm > in Brisbane (unlikely there's any training that will benefit my skill level > unfortunately), and I'm already a full-stack JEE ninja ;-) > > I'm definitely hoping we don't have to switch this project to modules, as > it's 3/4 done already, I've been thrown in because there's some serious > deadlines approaching, and I was just mainly wondering about how much leeway > we'll have as the SWF for this is already over a meg. It's not CRM, but it's > not a dashboard widget either ;-) > > -J > > On Fri, May 9, 2008 at 1:53 PM, Rick Winscot <[EMAIL PROTECTED]> > wrote: > > If you are creating widgets or gizmos with Flex/Flash… I don't think you > will ever hit the 'pain threshold.' However, if you are developing a > substantive application – workforce management, crm, data management, > repository, asset management or the like… realistically you can code up to > release oblivious of what is happening with memory management and system > performance. The difficulty is that developing in Flex is so freaking cool > that you can easily get caught up in features and visual sweetness that > you'll will forget to profile as you go to help you target bottlenecks. > Frankly – if you save performance tuning til' the 11th hour… it's going to > be rough. > > > > It's not just about the size of the swf – it all about coding to the > platform… most reasonably configured system will be fine. Here is a top > five-ish list of things to think about. > > > > #. Modularize your app – you _*can*_eat a whale… one bite at a time. > > #. Profile as you go – if you start to see 'the signs' stop and figure out > what the problem is. If you are patient the knowledge you gain in the > process will provide a feedback loop re-injecting better approaches and > broader understanding into your work. > > #. Training… there I said it. Spending a few bucks in a session with a > guru will be incalculable. > > #. Source. Source. Source. It's all about looking into the Flex SDK source > as much as you can. Building 'hot rods' is a process of developing > (fanatical) deep understanding of your subject – to the point you know when > to bend the rules and when not to. > > #. Become the solution. Let's face it… in order to be a Flex 'rockstar' you > are going to need to understand enterprise architecture, drool in sql, pound > (as in eat large quantities of) webservices/servlets/etc, and… well you get > the point. Buy some books… lots of em. Take a (qualified) nerd/geek out to > lunch. Ask to see cool things people 'talk' about and then ask to take a > look at the source. > > > > Cheers, > > > > Rick Winscot > > > > > > *From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On > Behalf Of *Josh McDonald > *Sent:* Thursday, May 08, 2008 10:51 PM > *To:* flexcoders@yahoogroups.com > *Subject:* [flexcoders] How big does a SWF get before IE starts to worry? > > > > Hey guys, > > I've been reading a lot about explorer not being so nice with Flex / Flasg > apps that use up a bit of memory, and I'm wondering at what kind of > thresholds this starts to become a problem? Is it mainly about SWF size, or > how loose you are with your allocations and leaving dead references around? > > -J > > -- > "Therefore, send not to know For whom the bell tolls. It tolls for thee." > > :: Josh 'G-Funk' McDonald > :: 0437 221 380 :: [EMAIL PROTECTED] > > > > > -- > "Therefore, send not to know For whom the bell tolls. It tolls for thee." > > :: Josh 'G-Funk' McDonald > :: 0437 221 380 :: [EMAIL PROTECTED] > > > -- "Therefore, send not to know For whom the bell tolls. It tolls for thee." :: Josh 'G-Funk' McDonald :: 0437 221 380 :: [EMAIL PROTECTED]