6 Replies Latest reply on May 21, 2012 3:43 AM by sebastijan

    Fields drawing speed in FM12 depending on styles?

    HOnza

      Marianco has recently mentioned being able to get FM12 layout drawing speed after conversion from FM11 back to an acceptable level by removing conditional formatting and switching field formats from the engraved border style to the new 1px solid border. See the original post here: Introducing the Performance Tuning Forum

       

      Inspired by this discovery, I have created a test database file to check the speed differences depening on different field styles.

      This file measures time needed to draw 4 fields, 2 of which are plain style and 2 are engraved.

      There is some measurement error caused by the overhead of the measuremen itself, but it shoul dbe sufficient for some basic idea of the speed differences.

       

      Download the file here

       

      You will need 24U Toolbox Plug-In (no registration necessary) to test it yourself.

       

      Here's result of my initial test on the MacBook Pro 2.3 GHz Core i7 with Mac OS X 10.6.8:

       

      ProAdvanced 11.0v4:

      12.4.2012 1:14:21,867317 Measured Layout drawing started

      12.4.2012 1:14:21,867691 Measured Layout drawing in progress

      12.4.2012 1:14:21,868492 Measured Layout drawing done

      12.4.2012 1:14:21,868682 Measured Layout measuring overhead

       

      ProAdvanced 12.0v1 after conversion:

      12.4.2012 1:14:40,805686 Measured Layout drawing started

      12.4.2012 1:14:40,807388 Measured Layout drawing in progress

      12.4.2012 1:14:40,808998 Measured Layout drawing done

      12.4.2012 1:14:40,809501 Measured Layout measuring overhead

       

      ProAdvanced 12.0v1 after conversion and removing styles from all fields:

      12.4.2012 1:24:37,789535 Measured Layout drawing started

      12.4.2012 1:24:37,791168 Measured Layout drawing in progress

      12.4.2012 1:24:37,792594 Measured Layout drawing done

      12.4.2012 1:24:37,793083 Measured Layout measuring overhead

       

      So the estimated times for drawing 1 field are:

       

      FM Version / styles2 fields + overheadOverhead1 field (estimated)
      11v4 plain374 µsec190 µsec92 µsec
      11v4 engraved801 µsec190 µsec306 µsec
      12v1 plain1702 µsec503 µsec600 µsec
      12v1 engraved1610 µsec503 µsec554 µsec
      12v1 no styles 11633 µsec489 µsec572 µsec
      12v1 no styles 21426 µsec489 µsec469 µsec

       

      Each test was performed by displaying the measured layout in browse mode for the first time after opeing the file.

      It might be also interesting to see how re-entering the same layout affects the speed, assuming there may be some caching of the CSS involved.

       

      Anyway, it seems that:

      • drawing fields is about twise as slow in FM12 as drawing engraved fields in FM11
      • impact of removing styles is marginal on my computer

       

      Do you get different result on your configuration? What's the result? What's your computer/OS config?

       

      HOnza

        • 1. Re: Fields drawing speed in FM12 depending on styles?
          TimGriffith

          It seems you commercialized 24U Toolbox just in time for the release of FMP12 (just 2 to 3 weeks before). Did you see something in FMP12 beta testing that made you the smartest man in the Filemaker kingdom? Good job!

          • 2. Re: Fields drawing speed in FM12 depending on styles?
            HOnza

            Hehe, this is just a coincidence. I started looking for ways to improve my company's FileMaker solution's performance years ago, which resulted in the idea for a product (FM Bench) back in 2010. This plug-in was just the best one out of our product line to add the necessary functions to. The recent Toolbox Plug-In update was just a bug fix logically following the FM Bench release.

             

            HOnza

            • 3. Re: Fields drawing speed in FM12 depending on styles?
              marianco

              These are interesting results.

               

              FM Version / styles2 fields + overheadOverhead1 field (estimated)
              11v4 plain374 µsec190 µsec92 µsec
              11v4 engraved801 µsec190 µsec306 µsec
              12v1 plain1702 µsec503 µsec600 µsec
              12v1 engraved1610 µsec503 µsec554 µsec
              12v1 no styles 11633 µsec489 µsec572 µsec
              12v1 no styles 21426 µsec489 µsec469 µsec

               

              From your findings for 2 fields plus overhead, FM12 is 4.5 times slower in drawing a plain field than FM11.  That is shockingly slow.

               

              Interestingly, adding an engraved style and removing the engraved style significantly speeds up FM12 rendering speed to that it is down to 3.8 times slower.  THAT's WEIRD.

               

              What exactly is the "overhead"?  Is that the time to load your plug-in?  If that's the case FM12 is 2.5 times slower than FM11 in loading the plug-in.

               

              Based on the estimated results from 1 field, removing an engraved style results in an approximately 16% boost in rendering speed in FM12.  That is not insignificant.  In my database (which runs on a MacBook Pro 2.3 GHz Core i7 16 GB 480 OWComputing SSD on OS X 10.7.3), the list view layout has about 50 fields.  Thus the slowdowns in drawing each field in each record and in the several records shown on the screen become cummulative and significant in list view.

              • 4. Re: Fields drawing speed in FM12 depending on styles?
                HOnza

                Based on my experience, 16% speed boost is really insignificant. It may be noticeable but usually does not make the difference between unacceptable and acceptable.

                 

                i think the results from measuring the plain field drawing show that styles are now always present in FM12, however complex they are. Even an unstyled field is actually styled - using some default style.

                 

                The overhead is caused by the fact that in order to record the time this extra work needs to be done:

                 

                1. Reading the unstored calculation field definition
                2. Evaluating the calculation
                3. Rendering the unstored calculation field on the layout

                 

                To be able to measure the overhead I added one more unstored calculation field which is rendered immediately after the third calculation.

                 

                When you subtract the 1 field render time from the overhead you'll discover that reading the unstored calculation field definition and evaluating the calculation seems to take around 100 µsec in FM11.

                 

                The fact that the measured overhead is smaller than the estimated 1 field render time in FM12 can have various reaons.

                One possible explanation is that retrieving the calculation field definition and evaluating the calculation is a lot faster in FM12 than it is in FM11.

                The shorter time to render engraved fields may simply mean there are other factors playing its role and making the measurement less accurate or requirimg many more measurements to happen, perhaps in a loop, to get more meaningful values.

                 

                It's also important to consider that in my test file the overhead causing measurement error is very close to the value I am measuring.

                To get more accurate results, I would probably do the following modifications:

                 

                • Test each case on a separate dedicated layout
                • Put at least 10, but rather 100 fields between the benchmarks, so that the measuring overhead is only around 1-2 % of the measured value

                 

                I didn't have enough time to do such detailed testing at this time, although I am definitely interested in finding out more.

                 

                For now, I foun very valuable the findings Oliver_Reid shared in the other discussion (FileMaker 12 speed issues & test results) about the data retrieval speed. I hope I will be able to do some serious testing in that area as well soon.

                 

                HOnza

                • 5. Re: Fields drawing speed in FM12 depending on styles?
                  HOnza

                  Hi All,

                   

                  I am seeing reports from people having speed issues as well as other people reporting they don't have any speed issues with FM12.

                  That's a sign there is a change to help the people who have issues,

                   

                  If we find out what's the key difference between the solutions with issues and the solutions without issues, then we should be able to find a way how to get rid of the issues.

                   

                  If you don't mind spending a few minutes with this, would you please download my test file, install 24U Toolbox Plug-In if necessary (you don't have to buy a license, the functions used in the test file work without registration), try the test file in FM 11, then again in FM 12, and share the results here in this discussion?

                   

                  I am also going to create another test file that will be fully automated and will gra more accurate results, but this may take me a few days, so if you can share some initial test results in the meantime, I think many people will thank you.

                   

                  Thanks,

                  HOnza

                  • 6. Re: Fields drawing speed in FM12 depending on styles?
                    sebastijan

                    Here are my results on the MacBook Pro 2.4 GHz Core i5, 8GB RAM with Mac OS X 10.7.3:

                     

                    First attempt:

                     

                    ProAdvanced 11.0v4:

                    21.5.2012 11:20:39,921218 Measured Layout drawing started

                    21.5.2012 11:20:39,922126 Measured Layout drawing in progress

                    21.5.2012 11:20:39,922973 Measured Layout drawing done

                    21.5.2012 11:20:39,923164 Measured Layout measuring overhead

                     

                    ProAdvanced 12.0v1:

                    21.5.2012 11:21:20,929306 Measured Layout drawing started

                    21.5.2012 11:21:20,930969 Measured Layout drawing in progress

                    21.5.2012 11:21:20,932731 Measured Layout drawing done

                    21.5.2012 11:21:20,933258 Measured Layout measuring overhead

                     

                    ProAdvanced 12.0v1:

                    21.5.2012 11:22:05,041114 Measured Layout drawing started

                    21.5.2012 11:22:05,042732 Measured Layout drawing in progress

                    21.5.2012 11:22:05,044197 Measured Layout drawing done

                    21.5.2012 11:22:05,044692 Measured Layout measuring overhead

                     

                    Second attempt:

                     

                    ProAdvanced 11.0v4:

                    21.5.2012 11:29:38,931114 Measured Layout drawing started

                    21.5.2012 11:29:38,931488 Measured Layout drawing in progress

                    21.5.2012 11:29:38,93225 Measured Layout drawing done

                    21.5.2012 11:29:38,932426 Measured Layout measuring overhead

                     

                    ProAdvanced 12.0v1:

                    21.5.2012 11:29:58,193351 Measured Layout drawing started

                    21.5.2012 11:29:58,195114 Measured Layout drawing in progress

                    21.5.2012 11:29:58,196838 Measured Layout drawing done

                    21.5.2012 11:29:58,197364 Measured Layout measuring overhead

                     

                    ProAdvanced 12.0v1:

                    21.5.2012 11:30:17,69944 Measured Layout drawing started

                    21.5.2012 11:30:17,700592 Measured Layout drawing in progress

                    21.5.2012 11:30:17,701568 Measured Layout drawing done

                    21.5.2012 11:30:17,701965 Measured Layout measuring overhead

                     

                    Third attempt:

                     

                    ProAdvanced 11.0v4:

                    21.5.2012 11:33:15,344566 Measured Layout drawing started

                    21.5.2012 11:33:15,34497 Measured Layout drawing in progress

                    21.5.2012 11:33:15,345817 Measured Layout drawing done

                    21.5.2012 11:33:15,346015 Measured Layout measuring overhead

                     

                    ProAdvanced 12.0v1:

                    21.5.2012 11:33:30,551681 Measured Layout drawing started

                    21.5.2012 11:33:30,55339 Measured Layout drawing in progress

                    21.5.2012 11:33:30,555084 Measured Layout drawing done

                    21.5.2012 11:33:30,555603 Measured Layout measuring overhead

                     

                    ProAdvanced 12.0v1:

                    21.5.2012 11:33:53,052886 Measured Layout drawing started

                    21.5.2012 11:33:53,054542 Measured Layout drawing in progress

                    21.5.2012 11:33:53,056037 Measured Layout drawing done

                    21.5.2012 11:33:53,056541 Measured Layout measuring overhead