We should check if Tabulator 5.0 is better, but the version 4.9.3 we have now leaks memory when you click between jquery UI tabs. It nearly doubles memory use each time you click between tabs. More investigation is needed as to why a jquery show/hide cycle in tabs causes this.
Also, tabulator might use too much memory to begin with - looks like ~500MB needed for 20,000 rows of data. We'll probably need to support 100,000 or 200,000 rows (50K or 100K of registered + 50K or 100K of effective).
Another strategy to consider instead of Virtual DOM is to configure the table widget to paginate. There are a few options on where to stash the whole data set:
The server can stash the whole thing and spoon feed via pagination requests
The client web browser can stash whole thing in memory
The client web browser can stash whole thing in IndexDB
We should check if Tabulator 5.0 is better, but the version 4.9.3 we have now leaks memory when you click between jquery UI tabs. It nearly doubles memory use each time you click between tabs. More investigation is needed as to why a jquery show/hide cycle in tabs causes this.
Also, tabulator might use too much memory to begin with - looks like ~500MB needed for 20,000 rows of data. We'll probably need to support 100,000 or 200,000 rows (50K or 100K of registered + 50K or 100K of effective).
Might need to look into something else for table component like: https://github.com/TonyGermaneri/canvas-datagrid. If we wanted to stick with Tabulator at a minimum we'd probably need to fix the issue where Virtual DOM lazily creates HTML TR elements, but NEVER frees them: https://github.com/olifolkerd/tabulator/issues/2387