@aleksandra_budnik @david_horvath
That’s true. If you turn on trim rows (this is the core plugin behind the Filters) then the performance is noticeably lower. We looked into this and discovered that the modifyRow hook is calling getLength too many times and would need some kind of cache. The way it works now is actually a feature (yeah, I know how it sounds) - Handsontable doesn’t know the exact moment in which user adds/remove rows programmatically (for example from the external code), therefore it checks the number of rows every time the bunch of data is loaded (which is from zero to n and if n is too big then is gets laggy like in your demo).
Some examples to prove my point:
Trim rows turned off: http://jsfiddle.net/owe8fps0/
Trim rows turned on: http://jsfiddle.net/9efcezzb/1/
We estimate that it would take at least one day to develop that caching mechanism and one more to write unit tests and fix the possible issues. 2 days altogether. I think we should be doing this soon but when exactly, can’t say. The only workaround before we improve it is to limit the data rendered in one cycle and use back-end pagination+filtering - we’ve recently improved the support for back-end operations in the Pro version: http://docs.handsontable.com/pro/1.1.1/tutorial-release-notes.html