1. #1
    Sencha User
    Join Date
    Jun 2009
    Posts
    750
    Vote Rating
    0
    meroy is on a distinguished road

      0  

    Default Folks will like the upcoming Ext JS 3.1.1 release

    Folks will like the upcoming Ext JS 3.1.1 release


    Hi there,

    I have a small patch set that I apply to the current build. The patch is very small. I began comparing Ext JS 2.3.0 and the current build. The path taken last night was simply this:

    1. I pulled up the portal demo running 2.3.0 and another portal demo using the current build.
    2. My focus was basically to follow the path for collapsing and expanding the west border region.
    3. Immediately, I saw something during profiling. The current build had numbers double that of 2.3.0 for some function calls.
    4. It's an overhead somewhere and I wanted to find it.

    Code:
    ##
    ## Enjoy the results :)
    ##
     
                                    # of calls
              # of calls            Max/Restore
     Build    (40 tabs)     Time    Window Size    Time
    ========  ==========  ========  ===========  ========
     3.0.3      477,580     5.691     399,909      9.466
     3.1.0      404,538     5.829     246,995     11.327
     R.5994     418,970     5.692      31,848      0.811
     R.C3       402,543     5.468       5,246      0.557
    Notes:

    <!-- Buffer resize is set to false in index.html -->
    <script type="text/javascript">
    Ext.Container.prototype.bufferResize = false;
    </script>

    The Max/Restore Window Size combines both maximizing and restoring the window size.

    The times above are in number of seconds and measured with profiling enabled.
    Therefore, it's faster when not profiling.

    How does the new Firefox stack up against IE 6 and 8?
    Tests were done against the R.C3 build.

    Code:
     Browser    Form     Grid     Editor    Table
    =========  =======  =======  ========  =======
     IE 6.0     1.125    0.625    1.609     4.125
     IE 8.0     0.624    0.546    1.061     2.387
     FF 3.6     0.874    0.586    1.173     1.665
    Resizing is nice with Firefox. Things sizes and falls into place nearly as fast as IE 8.

    I will share my R.C3 delta with the dev team. It's very small and applied to the current build.

    I need to run some additional tests. So far all looks good. Also keep in mind that the current build is also nice.

    Kind Regards,
    Mario
    Last edited by meroy; 4 Feb 2010 at 1:01 PM. Reason: Added IE 6.0 results

  2. #2
    Sencha User
    Join Date
    Jun 2009
    Posts
    750
    Vote Rating
    0
    meroy is on a distinguished road

      0  

    Default


    The number of calls are higher with 3.0.3 compared to 3.1.0. The reason is that 3.1.0 is when all the unrolling of many Ext.each statements to for loops occured.

  3. #3
    Ext JS Premium Member
    Join Date
    Apr 2009
    Location
    London, UK
    Posts
    14
    Vote Rating
    0
    robgallen is on a distinguished road

      0  

    Default


    Nice work. Any chance you can also compare IE 6 and 7? The majority of our users are still on these versions (sadly).

  4. #4
    jay@moduscreate.com's Avatar
    Join Date
    Mar 2007
    Location
    Frederick MD, NYC, DC
    Posts
    16,353
    Vote Rating
    77
    jay@moduscreate.com is a name known to all jay@moduscreate.com is a name known to all jay@moduscreate.com is a name known to all jay@moduscreate.com is a name known to all jay@moduscreate.com is a name known to all jay@moduscreate.com is a name known to all

      0  

    Default


    I am so glad that the ExtJS team is working with you on this.

  5. #5
    Sencha Premium Member
    Join Date
    Jul 2007
    Posts
    256
    Vote Rating
    1
    brookd is on a distinguished road

      0  

    Default


    Performance in IE is for me, still the biggest challenge in launching the app I am working on. Any and alll improvements are welcomed

  6. #6
    Ext JS Premium Member
    Join Date
    May 2008
    Posts
    528
    Vote Rating
    0
    Eric24 is on a distinguished road

      0  

    Default


    @meroy: Thanks for the good work! For my education, can you explain two things to me:
    1) You set bufferResize=false; this seems counter-intuitive to me. Is the purpose of bufferResize not to reduce the number of container layouts? Seems like you would want this enabled for best performance???
    2) When you mention "unrolling Ext.each statements", I assume you are referring to changing Ext.each to simple for() loops to eliminate the per-item function call inherent with in Ext.each? While this would certainly seem to be more efficient (I've never been a big fan of Ext.each), have you done any benchmarks to see how much performance benefit this really yields?

  7. #7
    Sencha - Sencha Touch Dev Team Jamie Avins's Avatar
    Join Date
    Mar 2007
    Location
    Redwood City, California
    Posts
    3,661
    Vote Rating
    21
    Jamie Avins is a jewel in the rough Jamie Avins is a jewel in the rough Jamie Avins is a jewel in the rough Jamie Avins is a jewel in the rough

      0  

    Default


    Quote Originally Posted by Eric24 View Post
    @meroy: Thanks for the good work! For my education, can you explain two things to me:
    1) You set bufferResize=false; this seems counter-intuitive to me. Is the purpose of bufferResize not to reduce the number of container layouts? Seems like you would want this enabled for best performance???
    2) When you mention "unrolling Ext.each statements", I assume you are referring to changing Ext.each to simple for() loops to eliminate the per-item function call inherent with in Ext.each? While this would certainly seem to be more efficient (I've never been a big fan of Ext.each), have you done any benchmarks to see how much performance benefit this really yields?
    1) This due to how the logic works in ContainerLayout's onResize. I wouldn't recommend changing it in general as it can cause layout issues. 3.1.2 will address this more directly.
    2) I don't remember the specific numbers, but it was easily enough to refactor back into the base.

  8. #8
    Ext JS Premium Member
    Join Date
    May 2008
    Posts
    528
    Vote Rating
    0
    Eric24 is on a distinguished road

      0  

    Default


    On #1, are you saying that I should or should not set bufferResize=false in 3.1.0 and/or 3.1.1?

  9. #9
    Sencha User
    Join Date
    Jun 2009
    Posts
    750
    Vote Rating
    0
    meroy is on a distinguished road

      0  

    Default


    Quote Originally Posted by Eric24 View Post
    On #1, are you saying that I should or should not set bufferResize=false in 3.1.0 and/or 3.1.1?
    Leave it as is for 3.1.1-rc or the upcoming 3.1.1. Basically, don't set it.

    I had set bufferResize to false for normalizing the data.

  10. #10
    Sencha User
    Join Date
    Jun 2009
    Posts
    750
    Vote Rating
    0
    meroy is on a distinguished road

      0  

    Default


    Quote Originally Posted by robgallen View Post
    Nice work. Any chance you can also compare IE 6 and 7? The majority of our users are still on these versions (sadly).
    I added results for IE 6. I find that IE 8 is a nice browser for running Ext JS driven apps in addition to webkit based browsers.

    Jamie is working on something for the 3.1.2 release. That will make Firefox more enjoyable to use as it will further minimize the calling of getComputedStyle I believe.