14 Replies Latest reply on Nov 20, 2013 10:46 AM by flashSpec

    Meaning of "Other Overheads"?

    mSantirso Level 1

      We tried today the Scout profiler and it seems very promising. However, it didn't provide helpful results in our case because 55% percent of the frame time is categorized under the non-informative "Other Overhead" category. What's that? How can we reduce that?

        • 1. Re: Meaning of "Other Overheads"?
          Mark E. Shepherd Adobe Employee

          We try to measure and report any significant flash player activity. "Other overhead" is time spent in flash player activities that we don't explicitly measure because they are not usually significant. However we realize that there are areas of the player that do not yet report enough details. Try the 2 ideas below, and let us know if it helped. If you are stillseeing the high "Other Overhead", we'll try to investigate further.

           

          Here are 2 possible causes of high "Other Overhead"

           

          1. you're using an older version of Flash Player. For best results you need to use Flash Player 11.5 or Air 3.5.

          2. you're using Stage3D and DisplayList recording in an app that does a lot of graphics. This can result in higher CPU times for "Runtime Overhead", so make sure these 2 recording options are turned off when you need accurate activity times.

           

          Regards,

          Mark Shepherd

          Scout Engineering

          • 2. Re: Meaning of "Other Overheads"?
            skipper7333

            I spent today trying to use the scount profiler on an Android AIR app and I have a similar problem every 5 frames or so is recorded as "Other Overhead" and on further inspection it seems they are "Runtime Overhead" 93%.

            This really doesn't help much and I am using Air 3.5 and have disabled Stage3D and Displaylist recording.

            Attached is a screenshot of the mobile profile session.

            I am using Starling 1.3 - as it is so regular could it be a render event or something?

            Any ideas?

             

            CheersScreen Shot 2013-01-16 at 18.25.03.png

            • 3. Re: Meaning of "Other Overheads"?
              Jason Moore Level 1

              I would be interested if your high overhead was measured off an iOS device.

               

              When we ran our application on both desktop and iPad, the iPad showed a far greater "Other Overhead." Further experiments seemed to indicate that this overhead on the iPad was directly linked to the number of actionscript objects we had. When we pushed in a large number of actionscript objects we actually got to the point where the "other overhead" was taking 100% of the frame budget.

              • 4. Re: Meaning of "Other Overheads"?
                skipper7333 Level 1

                No it was a Samsung Galaxy II. In terms of actionscript objects I am not sure how many but even for a basic splash screen I still get the above "runtime Overhead" spikes. I am not using FB 4.7 but FB 4.6 and Air 3.5.

                • 5. Re: Meaning of "Other Overheads"?
                  Jason Moore Level 1

                  More info on "other overhead"...

                   

                  We've been going through our code to try and find the cause of the other overhead and have found that use of File classes seem to significantly increase it in mobile applications. In our case we were able to almost completely remove this overhead by storing paths to files as strings, then only covert them temporarily to a File object when we wanted to open a filestream. I would'nt have though that the File class would have such a continous impact on overhead.

                  • 6. Re: Meaning of "Other Overheads"?
                    Michael J.A. Smith Adobe Employee

                    There's a bug in a certain version of Flash Player/AIR where the CPU usage computation was really expensive. I think this might be the problem - try turning off CPU usage in the Settings for New Sessions, and see if the problem goes away. We fixed this issue some time ago, but you might be using an older build.

                    • 7. Re: Meaning of "Other Overheads"?
                      Jason Moore Level 1

                      I don't believe the CPU monitoring was the issue in our case. As far as I remember we did'nt have CPU monitoring on , and we were using the latest build.

                       

                      We could actually see the slowdown in our app and when we removed the file objects you could actually see the app becomming more responsive. It effected iOS more than anything else , desktop was'nt so noticable.. When I get moment  I'll put togeather a test application just to make sure I'm not going mad....

                      • 8. Re: Meaning of "Other Overheads"?
                        Jason Moore Level 1

                        I've created a quick test bed. A mini application that adds 100 File Objects to a vector every time a button is pressed.

                        Compiled using Air 3.6 and exported to iOS as adHoc ( so not debug ), run on an iPad 3.

                        Run and watched in scout as I pressed the button every second or so to generate 3000 file objects.

                        otherOverheadScreenshot.jpg

                         

                        As you can hopefully see from the screenshot, by the time we get to 3000  files, the "other overhead" was getting to the point of using almost all of the frame budget.

                        When we first saw this overhead in our project, you'll appreciate that we did'nt know it was the file objects at the time.. so there was much scratching of heads as to what this Other Overhead might have been !

                         

                        Heres the test bed code....

                         

                        <?xml version="1.0" encoding="utf-8"?>
                        <!--
                        ////////////////////////////////////////////////////////////////////////////////
                        //
                        //    ViewNavigator Application
                        //    iOS File Objects Test
                        //
                        //    Description:
                        //
                        /////////////////////////////////////////////////////////////////////////////-->
                        
                        <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                                       xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160">
                            
                            <fx:Script>
                                <![CDATA[
                                        
                                    private var fileObjectArray:Vector.<File> = new Vector.<File>;
                                    
                                    protected function runTest_clickHandler(event:MouseEvent):void
                                    {
                                        
                                        //Loop and create 100 file objects
                                        for(var i:int = 0; i< 100;i++)
                                        {
                                            fileObjectArray.push(    File.applicationStorageDirectory.resolvePath( Math.random().toString())    );    
                                        }
                                        
                                        fileObjectsCount.text = this.fileObjectArray.length.toString();
                                        
                                    }
                                ]]>
                            </fx:Script>
                            
                            <fx:Declarations>
                                <!-- Place non-visual elements (e.g., services, value objects) here -->
                            </fx:Declarations>
                            
                            <s:Button id="runTest" label="Add 100 File Objects" horizontalCenter="0" verticalCenter="0" click="runTest_clickHandler(event)" />
                            <s:Label id="fileObjectsCount" text="Ready" horizontalCenter="0" verticalCenter="100" />
                                      
                        </s:Application>
                        

                         

                        I do think there are issues with the file handling in Air when packaging for iOS... its an area which needs looking at. There is a long outstanding bug with asyncronous filehandling that causes crashes on iOS, which I've been deperately trying to get fixed to for a couple of years now.. https://bugbase.adobe.com/index.cfm?event=bug&id=3496074 ... I thought i'd mention it here as its vaguely related and I'm trying to get it publicity and votes

                        • 9. Re: Meaning of "Other Overheads"?
                          Michael J.A. Smith Adobe Employee

                          Hi Jason,

                           

                          Thanks for sharing your experience - my comment was referring to skipper7333's problem, and the attached screenshot; clearly your problem is something completely different.

                           

                          I agree that this bug ought to be fixed. On the Scout side, we've tried our best to categorise everything that takes a significant time, i.e. to keep the "Other Overhead" category as small as possible - it looks like this is a case where we could use an additional metric in Flash Player, to measure this activity!

                           

                          In the meantime, since the problem is only with async file opens, you might want to try using a worker thread to do a sync file open - even if it's a bit of an ugly solution, this should fix the problem without impacting your UI.

                          • 10. Re: Meaning of "Other Overheads"?
                            Jason Moore Level 1

                            Hi Michael,

                             

                            No problem giving feedback.. I must say overall Scout is excellent.

                             

                            Just one last final comment.... The Asyc file handling thing is a seperate bug bear ( See what I did there ...   heh) ... If you look at my test code you see that I'm not actually opening any files whatsoever, all I'm doing is creating file references with the file object to create this other overhead. Perhaps I need to register this in the Bug base too!

                             

                            Thanks

                             

                            Jason.

                            • 11. Re: Meaning of "Other Overheads"?
                              leejk Level 1

                              Hello, I am seeing the same thing here when profiling on Android. The "Other Overhead" category is huge, so there is no way for me to discern what the problem is. Are there plans to fix this?

                              • 12. Re: Meaning of "Other Overheads"?
                                VaVaVooooooom

                                I'm also having a similar problem when profiling my project using scout. On the desktop everything seems normal (flash running in browser). I get minimal "other overheads" which doesn't affect performance. However, when I run the same project on a windows 8 tablet (Dell XPS 10), the "other overheads" category is significantly higher resulting in performance issues (very low FPS)

                                 

                                I know this is to be expected for a tablet, but it would be very beneficial if we can find out what other overheads/runtime overheads include so that I know what I should be optimising....

                                 

                                Thanks in advanced!

                                • 13. Re: Meaning of "Other Overheads"?
                                  Michael J.A. Smith Adobe Employee

                                  Thanks for the feedback! We'd definitely like to reduce the amount of time in "runtime overhead", and we'll hopefully be adding new data in future versions of Flash Player/Scout that'll better let you see what's going on. In the case of Windows 8, it's quite likely that there are costly code paths that we haven't instrumented, since this is a new target for Flash Player.

                                   

                                  Bear in mind that there is some finer-grained data in the "other overhead" category - if you look in the Top Activities and Activity Sequence panels, you can see a more detailed breakdown of what's going on. But "runtime overhead" is just a catch-all activity for anything we're not explicitly measuring, so if your problem is there, it means we need to improve the instrumentation. If you have any specific content you're able to share, that illustrates this, it would be helpful if you could send it to us! (you can contact me at michsmit@adobe.com).

                                   

                                  As an aside, remember when you're profiling performance to start by turning off all the settings for new sessions except for Basic Telemetry. Some of these settings have high overhead, especially on mobile, and this could be giving you misleading results (we don't currently categorise Telemetry overhead, so this would appear under generic "runtime overhead").

                                  • 14. Re: Meaning of "Other Overheads"?
                                    flashSpec

                                    In my case using "Embed" to load in the graphics created this "Other Overhead".

                                    Using a costum file loader fixed this.

                                     

                                    Using starling 1.3, Nape 2.0 for web and mobile games.