Monday, January 18, 2010

ExtJS 3.1 Preformance review

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.

BrowsersBrowser use (blank page) (KB)Initial ExtJS use(KB)Use after 20 browser refreshing(KB)
IE611,26030,71235,504
IE8(two threads)14,14829,48037,468
17,23618,05218,012
Firefox 3.535,16443,08059,824
Chrome 3.0(two threads)20,86434,28034,296
7,8048,90024,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.

BrowsersFirst Window use (KB)Use after 30 windows creation (KB)Use after closing all 30 windows
IE629,71243,30039,102
Firefox 3.555,01262,50160,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.1V3.1
Memory use(KB)Loading timeAverage (S)Memory use(KB)Loading timeAverage (S)
Initial Loading55,5724.565,0525.8
Ext.Window Creation60,1201.072,4401.0
Tab switching63,2003.074,3725.9
Browser Refreshing78,9765.492,5606.3
2nd Browser Refreshing79,50093,564

IE 8

Events V2.1V3.1
Memory use(KB)Loading timeAverage (S)Memory use(KB)Loading timeAverage (S)
Initial Loading 48,3043.654,4644.2
Ext.Window Creation53,6600.662,3760.7
Tab switching56,5161.165,2202.4
Browser Refreshing69,0883.688,3003.6
2nd Browser Refreshing59,75281,564

Firefox 2.0

Events V2.1V3.1
Memory use(KB)Loading timeAverage (S)Memory use(KB)Loading timeAverage (S)
Initial Loading31,5925.235,3447.1
Ext.Window Creation32,2481.335,6201.3
Tab switching36,592139,4043.3
Browser Refreshing40,5845.343,5526.8
2nd Browser Refreshing40,39243,468

Firefox 3.5

Events V2.1V3.1
Memory use(KB)Loading timeAverage (S)Memory use(KB)Loading timeAverage (S)
Initial Loading57,1044.266,2924.6
Ext.Window Creation57,6720.667,3160.7
Tab switching63,0520.671,6761.7
Browser Refreshing65,2724.177,2484.5
2nd Browser Refreshing63,94473,352