cancel
Showing results for 
Search instead for 
Did you mean: 

design studio performance issue

Former Member
0 Kudos

Hi,

I have dashboard with performance issues. When I clicked on buttons to run some scripts dashaboard responses slowly to reflect changes. I have activated runtime profiling and analyzed the logs, according to logs major runtimes are on "Render Ui Item ZEN_PROFILING" steps. What does it mean? How can it be improved?

Thanks in advance,

Accepted Solutions (0)

Answers (4)

Answers (4)

MustafaBensan
Active Contributor
0 Kudos

Hi Ihsan,

Based on your comments and code I think I get the gist of what you are trying to achieve, with an application that probably looks something like this prototype I created:

Although it may not necessarily be the cause of your performance issue, I suggest that you simplify your code by creating a global script function to replace the long if-then-else statement you have, as per the example below:

Then each '-'/'+' icon would include code calling this function, as follows:

GLOBAL_SCRIPTS_PROGRESS.updateProgressIndicator("-", PROGRESSINDICATOR_1, INPUTFIELD_1);
GLOBAL_SCRIPTS_PROGRESS.updateProgressIndicator("+", PROGRESSINDICATOR_1, INPUTFIELD_1);

Here's a download link to the exported application that you can try in your own system to compare performance results, which may help in narrowing down the root cause of your issue:

https://www.dropbox.com/s/eo0yy8rwkraf7bs/SCN_PROGRESS_INDICATOR-20171004160557.zip?dl=0

Regards,

Mustafa.

Former Member
0 Kudos

Hi Mustafa,

Thank you for your detailed explanation. Your prototype is very much similar to mine. I will try your suggestion

The same code is written on every icon such as "GLOBAL_SCIPTS.myScript(me) ". "me" is assigned to param1, and the above script is called. Instead of writing explicitly corresponding progress indicator name on every icon, I preferred to achieve this by if then else statements in the script, as you might have noticed.

MustafaBensan
Active Contributor
0 Kudos

Okay Ihsan. Let me know how you go.

Former Member
0 Kudos

Hi Mustafa,

I repaced my scripts with your algorithm, even though it is not at desired level, there seems to be slight improvement on components' response times. Anyway thanks again for your suggestion.

MustafaBensan
Active Contributor
0 Kudos

Hi Ihsan,

Thanks for your follow-up. Instead of copying my script code to your existing application, did you try downloading my sample app from the link provided, importing it directly into your Design Studio environment and then executing it to observe the performance for comparison purposes?

Former Member
0 Kudos

Hi,

My client is 1.6 sp4 , the BI platform is on 1.6 sp3 . Both in local or BI mode slow response happens on Internet explorer. Nothing has changed even applying your suggestions.

MustafaBensan
Active Contributor
0 Kudos

Hi Ihsan,

A couple of comments and questions:

1) Although this probably is not the cause of your performance issues, you should make sure that your DS client version and BIP add-on version are identical;

2) Can you post the script code of the buttons that are causing the performance issue?

Regards,

Mustafa.

Former Member
0 Kudos

Hi Mustafa,

I am using progress indicator component like a slider, by clicking on + or - icons, iindicator's value increase or decrease. Following script is run on -click of icons.

var va = 0.0 ;


if (param1 == ICON_1 ) { va = PROGRESSINDICATOR_1.getPercentValue(); PROGRESSINDICATOR_1.setPercentValue(va -1 ); PROGRESSINDICATOR_1.setText((va-1-50) + " %");INPUTFIELD_1.setValue((va-1-50) +""); }
else if (param1 == ICON_2 ) { va = PROGRESSINDICATOR_1.getPercentValue(); PROGRESSINDICATOR_1.setPercentValue(va+1 );PROGRESSINDICATOR_1.setText((va+1-50) + " %"); INPUTFIELD_1.setValue((va+1-50) +""); }
else if (param1 == ICON_3 ) { va = PROGRESSINDICATOR_2.getPercentValue(); PROGRESSINDICATOR_2.setPercentValue(va-1 );PROGRESSINDICATOR_2.setText((va-1-50) + " %"); INPUTFIELD_2.setValue((va-1-50) +""); }
else if (param1 == ICON_4 ) { va = PROGRESSINDICATOR_2.getPercentValue(); PROGRESSINDICATOR_2.setPercentValue(va+1 );PROGRESSINDICATOR_2.setText((va+1-50) + " %"); INPUTFIELD_2.setValue((va+1-50) +""); }
else if (param1 == ICON_5 ) { va = PROGRESSINDICATOR_3.getPercentValue(); PROGRESSINDICATOR_3.setPercentValue(va-1 );PROGRESSINDICATOR_3.setText((va-1-50) + " %"); INPUTFIELD_3.setValue((va-1-50) +""); }
else if (param1 == ICON_6 ) { va = PROGRESSINDICATOR_3.getPercentValue(); PROGRESSINDICATOR_3.setPercentValue(va+1 );PROGRESSINDICATOR_3.setText((va+1-50) + " %"); INPUTFIELD_3.setValue((va+1-50) +""); }
else if (param1 == ICON_7 ) { va = PROGRESSINDICATOR_4.getPercentValue(); PROGRESSINDICATOR_4.setPercentValue(va-1 );PROGRESSINDICATOR_4.setText((va-1-50) + " %"); INPUTFIELD_4.setValue((va-1-50) +""); }
else if (param1 == ICON_8 ) { va = PROGRESSINDICATOR_4.getPercentValue(); PROGRESSINDICATOR_4.setPercentValue(va+1 );PROGRESSINDICATOR_4.setText((va+1-50) + " %"); INPUTFIELD_4.setValue((va+1-50) +""); }
else if (param1 == ICON_9 ) { va = PROGRESSINDICATOR_5.getPercentValue(); PROGRESSINDICATOR_5.setPercentValue(va-1 );PROGRESSINDICATOR_5.setText((va-1-50) + " %"); INPUTFIELD_5.setValue((va-1-50) +""); }
else if (param1 == ICON_10 ) { va = PROGRESSINDICATOR_5.getPercentValue(); PROGRESSINDICATOR_5.setPercentValue(va+1 );PROGRESSINDICATOR_5.setText((va+1-50) + " %"); INPUTFIELD_5.setValue((va+1-50) +""); }
else if (param1 == ICON_11 ) { va = PROGRESSINDICATOR_6.getPercentValue(); PROGRESSINDICATOR_6.setPercentValue(va-1 );PROGRESSINDICATOR_6.setText((va-1-50) + " %"); INPUTFIELD_6.setValue((va-1-50) +""); }
else if (param1 == ICON_12 ) { va = PROGRESSINDICATOR_6.getPercentValue(); PROGRESSINDICATOR_6.setPercentValue(va+1 );PROGRESSINDICATOR_6.setText((va+1-50) + " %"); INPUTFIELD_6.setValue((va+1-50) +""); }
else if (param1 == ICON_13 ) { va = PROGRESSINDICATOR_7.getPercentValue(); PROGRESSINDICATOR_7.setPercentValue(va-1 );PROGRESSINDICATOR_7.setText((va-1-50) + " %"); INPUTFIELD_7.setValue((va-1-50) +""); }
else if (param1 == ICON_14 ) { va = PROGRESSINDICATOR_7.getPercentValue(); PROGRESSINDICATOR_7.setPercentValue(va+1 );PROGRESSINDICATOR_7.setText((va+1-50) + " %"); INPUTFIELD_7.setValue((va+1-50) +""); }
else if (param1 == ICON_15 ) { va = PROGRESSINDICATOR_8.getPercentValue(); PROGRESSINDICATOR_8.setPercentValue(va-1 );PROGRESSINDICATOR_8.setText((va-1-50) + " %"); INPUTFIELD_8.setValue((va-1-50) +""); }
else if (param1 == ICON_16 ) { va = PROGRESSINDICATOR_8.getPercentValue(); PROGRESSINDICATOR_8.setPercentValue(va+1 );PROGRESSINDICATOR_8.setText((va+1-50) + " %"); INPUTFIELD_8.setValue((va+1-50) +""); }
else if (param1 == ICON_17 ) { va = PROGRESSINDICATOR_9.getPercentValue(); PROGRESSINDICATOR_9.setPercentValue(va-1 );PROGRESSINDICATOR_9.setText((va-1-50) + " %"); INPUTFIELD_9.setValue((va-1-50) +""); }
else if (param1 == ICON_18 ) { va = PROGRESSINDICATOR_9.getPercentValue(); PROGRESSINDICATOR_9.setPercentValue(va+1 );PROGRESSINDICATOR_9.setText((va+1-50) + " %"); INPUTFIELD_9.setValue((va+1-50) +""); }
else if (param1 == ICON_19 ) { va = PROGRESSINDICATOR_10.getPercentValue(); PROGRESSINDICATOR_10.setPercentValue(va-1 );PROGRESSINDICATOR_10.setText((va-1-50) + " %"); INPUTFIELD_10.setValue((va-1-50) +""); }
else if (param1 == ICON_20 ) { va = PROGRESSINDICATOR_10.getPercentValue(); PROGRESSINDICATOR_10.setPercentValue(va+1 );PROGRESSINDICATOR_10.setText((va+1-50) + " %"); INPUTFIELD_10.setValue((va+1-50) +""); }
else if (param1 == ICON_21 ) { va = PROGRESSINDICATOR_11.getPercentValue(); PROGRESSINDICATOR_11.setPercentValue(va-1 );PROGRESSINDICATOR_11.setText((va-1-50) + " %"); INPUTFIELD_XX.setValue((va-1-50) +""); }
else if (param1 == ICON_22 ) { va = PROGRESSINDICATOR_11.getPercentValue(); PROGRESSINDICATOR_11.setPercentValue(va+1 );PROGRESSINDICATOR_11.setText((va+1-50) + " %"); INPUTFIELD_XX.setValue((va+1-50) +""); }

MustafaBensan
Active Contributor
0 Kudos

For further clarification, can you also post a full screenshot of your application showing the progress indicators?

MustafaBensan
Active Contributor
0 Kudos

Also, how and where are you setting the value of param1?

former_member197738
Participant
0 Kudos

Hi Celik,

What version of DS you are on?

That may be due to cache issue.

Try clearing the cache from IE browser, see this link first 2 steps. Then also clear the cache from Network (see my previous reply last screenshot) under Network 5th Icon. Then reopen the browser and check the performance again.

Chrome will always be faster due to rapid updates. SAP only support and recommend IE>10 compatibility with their product.

Side Note: With Chrome you will need to wrote additional code to handle CSS output.

If still the issue persists, the root cause of performance can run into deep analysis based on various key factor as below:-

  • Bex aggregation
  • Design Studio APS memory assignement
  • BI Architecture
  • HANA memory heap session
  • Parallel processing of queries
  • Design Studio code conflict
  • Browser add-ons
  • CSS load time
  • Image load time

However i'm pretty sure except first 3 rest can be ignored in your case.

TammyPowlas
Active Contributor
0 Kudos

Hello - Karol explains the details here: https://blogs.sap.com/2015/06/30/understanding-profiling-and-statistics-in-design-studio/ - reading his code, Z_PROFILING are items from the "non-Layout area"

He has 2 links in his blog to best practices for performance - have you taken a look? Is your datasource BW or HANA?

Former Member
0 Kudos

Yes, I have read Karol's post . My datasource is BW query,, but this issue is not rlated with data source I think. As mentioned it is somethng related with rendering. Actually slow response happens when the I click on a button to change the value of a progress indicator component.

former_member197738
Participant
0 Kudos

Hi Celik,

Do you have just a 'Process-indicator' component with few buttons and no data-source within your application ?

If yes, i would Check for Browser add-on's. DS output as HTML takes a great hit on performance. Check IE > v10 and add-on.

Former Member
0 Kudos

Hi Fahad,

I have datasources in dashboard but progress-indicator component's value is updated by simple calculations in button^s on-click event. What do you mean Browser add-on check? Do I have to disable add-ons of browser for performance increase ?

former_member197738
Participant
0 Kudos

Hi Celik,

Please find below screenshot.

  1. These add-on slow down the browser performance and eventually rendering of application.
  2. Also can you check in both Mode (Local and BI) and see the performance than.
  3. HIT F12 and check under 'Network' what is taking too long, please see 3rd screenshot.

Hope this help, goodluck

Regards,

Fahad

Former Member
0 Kudos

Hi Fahad,

I have disabled add-ons in Internet explorer but nothing has changed. On the orher hand, when I opened the same dashboard from Chrome browser, the performance of the same action is much better then in Internet explorer.

I have also checked "Network" via F12 in both browsers, both displayed almost same time values like 250 ms, however while actual response time (or felt time) on Chrome is less than a second, Internet Explorer has responded in about 3-4 secs.