ExtJS 3.1 Memory leak verification
The following result shows two memory use, library itself and Ext.Window.
ExtJS library
I attached the library ext-base.js and ext-all.js with ext-all.css, but without doing any creation. In other words, only ExtJS global variables and functions are created. The result is as following table.
Browsers | Browser use (blank page) (KB) | Initial ExtJS use(KB) | Use after 20 browser refreshing(KB) |
---|---|---|---|
IE6 | 11,260 | 30,712 | 35,504 |
IE8(two threads) | 14,148 | 29,480 | 37,468 |
17,236 | 18,052 | 18,012 | |
Firefox 3.5 | 35,164 | 43,080 | 59,824 |
Chrome 3.0(two threads) | 20,864 | 34,280 | 34,296 |
7,804 | 8,900 | 24,408 |
The above table shows the library itself memory leak. When the page is unloaded, the memory used by ExtJS can not be released by all tested browsers.
Ext.Window memory use
I created very simple Ext.Window with "Hello World" text using the new v3.1 library and attached it to a normal html button. The memory leak is shown on both Firefox 3.5 and IE6 as below.
Browsers | First Window use (KB) | Use after 30 windows creation (KB) | Use after closing all 30 windows |
---|---|---|---|
IE6 | 29,712 | 43,300 | 39,102 |
Firefox 3.5 | 55,012 | 62,501 | 60,800 |
ExtJS 2.1 and ExtJS 3.1 Performance Comparison
The following table shows the performance comparison between using v2.1 and v3.1 on our Front-End.
The profiling was conducted on the same machine with the Apache environment.
The result shows that the v3.1 memory use and its Javascript performance is degraded on all browsers comparing with v2.1.
IE 6
The V3.1 on IE6 is significantly slower. It took 90 seconds to switch between the product tab panels and the price updating is noticeably lagging. The CPU is intensively used for updating prices. It hardly can be used.
IE 7
Events | V2.1 | V3.1 | ||
---|---|---|---|---|
Memory use(KB) | Loading timeAverage (S) | Memory use(KB) | Loading timeAverage (S) | |
Initial Loading | 55,572 | 4.5 | 65,052 | 5.8 |
Ext.Window Creation | 60,120 | 1.0 | 72,440 | 1.0 |
Tab switching | 63,200 | 3.0 | 74,372 | 5.9 |
Browser Refreshing | 78,976 | 5.4 | 92,560 | 6.3 |
2nd Browser Refreshing | 79,500 | 93,564 |
IE 8
Events | V2.1 | V3.1 | ||
---|---|---|---|---|
Memory use(KB) | Loading timeAverage (S) | Memory use(KB) | Loading timeAverage (S) | |
Initial Loading | 48,304 | 3.6 | 54,464 | 4.2 |
Ext.Window Creation | 53,660 | 0.6 | 62,376 | 0.7 |
Tab switching | 56,516 | 1.1 | 65,220 | 2.4 |
Browser Refreshing | 69,088 | 3.6 | 88,300 | 3.6 |
2nd Browser Refreshing | 59,752 | 81,564 |
Firefox 2.0
Events | V2.1 | V3.1 | ||
---|---|---|---|---|
Memory use(KB) | Loading timeAverage (S) | Memory use(KB) | Loading timeAverage (S) | |
Initial Loading | 31,592 | 5.2 | 35,344 | 7.1 |
Ext.Window Creation | 32,248 | 1.3 | 35,620 | 1.3 |
Tab switching | 36,592 | 1 | 39,404 | 3.3 |
Browser Refreshing | 40,584 | 5.3 | 43,552 | 6.8 |
2nd Browser Refreshing | 40,392 | 43,468 |
Firefox 3.5
Events | V2.1 | V3.1 | ||
---|---|---|---|---|
Memory use(KB) | Loading timeAverage (S) | Memory use(KB) | Loading timeAverage (S) | |
Initial Loading | 57,104 | 4.2 | 66,292 | 4.6 |
Ext.Window Creation | 57,672 | 0.6 | 67,316 | 0.7 |
Tab switching | 63,052 | 0.6 | 71,676 | 1.7 |
Browser Refreshing | 65,272 | 4.1 | 77,248 | 4.5 |
2nd Browser Refreshing | 63,944 | 73,352 |