PDA

View Full Version : ExtJS 4 Big Application



el_chief
7 Jan 2012, 4:43 PM
Let's say I have a CRUD application with a number of entities, such as a contacts and orders.

Each entity has a store and model, perhaps with some associations. Each entity also has a grid view, and a data entry form. Each entity gets its own controller (or perhaps one per view, so 2 per entity)

So 10 entities = 10 stores, 10 model definitions, 10 grids, 10 forms, 10-20 controllers

Question:

What is the maximum number of entities I can have loaded at once before I start to see debilitating memory/performance problems in the browser? (assume IE8+, and recent versions of chrome/ff/safari)

is it 10? 100? 1000?

What is the crucial factor wrt performance/memory? Is it the store, model, view, or controller?

Thanks!

skirtle
8 Jan 2012, 12:56 AM
Performance bottlenecks tend to be in the views but it varies as to what the exact problem is. Complex layouts with many deeply nested views can have performance problems even with very little data. At the opposite end of the spectrum a single grid with 1000 records is likely going to struggle.

As you may be aware, ExtJS 4.0 has had some performance problems and 4.1 is largely targeted at improving performance. If you read some of the blog postings about the changes you'll notice that the main targets of the improvements have been the views.

While it's entirely possible to induce a performance problem with any type of class, it seems unlikely you'd hit problems with models, stores or controllers in a normal use case. I've had 5000 records in a store and the biggest problem was the time taken to load them from the server. Browser memory usage increases but there's no obvious effect on performance. Quite how useful a store is without a view is another matter...

You may be interested to read these tips on improving performance:

http://www.sencha.com/forum/showthread.php?153565

el_chief
8 Jan 2012, 1:09 AM
Thanks, skirtle. You are the man.