Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
diwakarnahata
Creator
Creator

Application Performance Optimization

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

4 Replies
prieper
Master II
Master II

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

Not applicable

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?

Anonymous
Not applicable

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 ?

datanibbler
Champion
Champion

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