Mats Bryntse
19 June 2012

Performance benchmarks: 2.1 vs 2.0.9 vs 1.8.4

The 3 main features of the previously released 2.1 version were performance, performance and performance. At the point of the […]

The 3 main features of the previously released 2.1 version were performance, performance and performance. At the point of the release, we were quite confident we had made our components much faster, but that is not really enough without some benchmark data to back it up. We decided to produce some benchmarks comparing 1.8.4 (based on Ext JS 3), 2.0.9 (based on Ext 4.0.7) and 2.1 (based on Ext JS 4.1.0).

To put these versions to the test, we created a simple test case, testing 4 different scenarios:

The tests were executed on a Lenovo W510 which is a quite fast machine, and we used Firefox 12 and IE9 to run the tests. The test source can be seen below:

var data = [],
    x = 500;

for (var i = 0; i < x; i++) {
    data.push({ Id : i, Name : 'Res' + i });
}

var date = new Date();

var scheduler = new Sch.SchedulerPanel({
    viewPreset  : 'dayAndWeek',
    startDate   : new Date(2010, 0, 1),
    endDate     : Ext.Date.add(new Date(2010, 0, 1), Ext.Date.DAY, x),
    width       : 500,
    height      : 500,

    columns : [
        {header : 'Name', width:200, dataIndex : 'Name' }
    ],

    resourceStore : new Sch.data.ResourceStore({
        data : data
    }),

    eventStore : new Sch.data.EventStore({
        data : [
            ...
        ]
    })
})

scheduler.normalGrid.on('viewready', function() {
    console.log(new Date() - date);
});

scheduler.render(document.body);

The results of this test can be seen below:

Ext JS
Scheduler
Browser 10x10 50x50 250x250 500x500
3.4.0 1.8.4 FF12 110 ms 230 ms 9 s 49 s
4.0.7 2.0.9 FF12 310 ms 1.3 s 23 s 78 s
4.1.0 2.1.0 FF12 200 ms 300 ms 680 ms 1.2 s
3.4.0 1.8.4 IE9 60 ms 280 ms 12 s 48 s
4.0.7 2.0.9 IE9 420 ms 6 s X X
4.1.0 2.1.0 IE9 140 ms 260 ms 950 ms 2 s

The numbers clearly show the results of the combined effort of Sencha's Ext JS 4.1 release, and our own performance tuning for v2.1.0. Additionally, there is also a noticeable difference in overall responsiveness when interacting with the Scheduler, but this is harder to measure and benchmark properly. This is a direct result of the reduced DOM footprint in v2.1.

We have a few more ideas for additional performance improvements for Scheduler 3.0, so stay tuned.

Mats Bryntse

Uncategorized