I would log this in the ExtJS forum as an 'issue/bug'
But to boost performance use suspendLayouts()
checkchange: function (record, checked, opts) {
var i = 0;
var start = new Date();
panel.suspendLayouts();
record.cascadeBy(function (e) {
i++;
e.set('checked', checked);
});
panel.resumeLayouts();
var stop = new Date();
alert(i + 'items ' + (stop - start) + 'ms');
}
Here is a working fiddle:
http://jsfiddle.net/Vandeplas/8Dq2s/
It renders in 1/10 of the time before... more like 60ms!
This method is designed for these 'batch' updates.