Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi All,
I have some serious concerns over the performance of my application.
Below are some statistics to provide some insights:
1. Total size of the qvw = 5 GB
2. Total Users as of now = 10
3. Total RAM on Server = 112 GB
4. Total RAM Consumed when application is running and used by all the users = 60%
5. Average time taken for each selection in filters = 8 secs
6. Average time taken for opening and loading of a new sheet = 15 secs
7. Max. time taken for opening and loading of a sheet = 40 secs
8. Total number of triggers in the application = 15
9. If conditions used in 20% of the expressions
10. No Macros used
I believe the performance of the application is not up to the mark.
What is the best way to debug the performance issues?
Let me know if any more information is required.
Regards,
Diwakar
Usually the compression-rate of a qvw-file is 8...10-fold if loaded into RAM. For each user you should add 10%. Thus your above observation of 60% RAM-consumption is within range.
Question is alway, how may objects are active, when opening an application (and whether there are inital filters set). You should try to minimize or restrict the objects to show only xxx number of records in order to encourage the users to filter their data.
IF-conditions are sometimes problematic, especially when nested or when lots of distinct data to be analyzed. Would start here with a critical view. Might also be possible to precalculate some of these IF's in the script already.
You may check with .mem-file the consumption of RAM for individual objects, likewise you may check the last calculation-time under sheet->properties->objects.
Peter
As Peter mentioned, those IF statements can definitely eat up CPU especially in calculated dimensions. One possible idea, perhaps you could use your IF statements in your load script as flags and then use the flags in set analysis?
Performance depends on many things which are hard to guess without seeing your 5GB qvw.
Notwithstanding that could you share a screenshot of your data model ?
Hi,
building on Christian's idea, try to replace IF_statements (nested IFs in particular) with PICK(MATCH()) functions. It keeps the whole thing much easier rgd. the bracketing (you open and close every line individually, so you don't have to worry much about where to close specific parts) -. and I believe it also enhances performance.
The fact that your sheets take quite a lot of time to load points to the conclusion that you probably have some pretty complex charts or resource-intensive calculations to be done on the GUI.
Can you discern whether it is more on the script_layer or on the GUI that you do have issues? Does your data load in acceptable time?
Just test it locally and see which part(s) of your application are okay and which seem to be slow.
HTH
Best regards,
DataNibbler