4 Replies Latest reply: Feb 26, 2015 10:36 AM by Friedrich Hofmann RSS

    Application Performance Optimization

    Diwakar Nahata

      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

        • Re: Application Performance Optimization
          Peter Rieper

          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

          • Re: Application Performance Optimization
            Christian Ventrigli

            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?

              • Re: Application Performance Optimization
                Friedrich Hofmann

                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