4 Feb 2010 3:52 AM #1
Folks will like the upcoming Ext JS 3.1.1 release
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.
## ## 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
<!-- Buffer resize is set to false in index.html -->
Ext.Container.prototype.bufferResize = false;
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.
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
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.
Last edited by meroy; 4 Feb 2010 at 1:01 PM. Reason: Added IE 6.0 results
4 Feb 2010 4:05 AM #2
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.
4 Feb 2010 5:52 AM #3
Nice work. Any chance you can also compare IE 6 and 7? The majority of our users are still on these versions (sadly).
4 Feb 2010 6:01 AM #4
4 Feb 2010 10:23 AM #5
Performance in IE is for me, still the biggest challenge in launching the app I am working on. Any and alll improvements are welcomed
4 Feb 2010 10:52 AM #6
@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?
4 Feb 2010 11:07 AM #7
2) I don't remember the specific numbers, but it was easily enough to refactor back into the base.
4 Feb 2010 11:17 AM #8
On #1, are you saying that I should or should not set bufferResize=false in 3.1.0 and/or 3.1.1?
4 Feb 2010 12:17 PM #9
4 Feb 2010 1:07 PM #10
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.