ExtJS Grid slow with 3000+ records

Try using the buffered renderer plugin, 3000+ records is not that much, with the plugin.

Snippet from the sencha doc:

var grid = Ext.create('Ext.grid.Panel', {
    // ...
    autoLoad: true,
    plugins: {
        ptype: 'bufferedrenderer',
        trailingBufferZone: 20,  // Keep 20 rows rendered in the table behind scroll
        leadingBufferZone: 50   // Keep 50 rows rendered in the table ahead of scroll
    },
    // ...
});

You can either use the trailing/leading buffer configs to trim your grid, or just skip them from the config. I've never needed the trimming my self

ref: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.plugin.BufferedRenderer