Page Performance and Outsystems

Page Performance and Outsystems

  
Hi,

I have a question regardiing page-loading times etc.

I am trying to figure out which parts of the total time of a page is caused by what.

1. chrome-network analysis will show me a rendertime of 18secs (this is the first load, so probably has to do with some compiling stuff)
the latency is there 99%, so waiting for 18.42secs and receive in .21secs
2. is servicecenter I also see that same amout of 18.42 secs.

reloading the page will reduce is to 2.5secs, where the basic jsf-page is doing a waiting for the page of 1.7secs and receiving for .15secs.
this is ok-ish, but I still want to know what those 1.7secs consist of..

How can I tell/see what is causing thise 1.7secs?
I have no slowsql, but I do have multiple queries.
I also have multiple webblocks.
I got a nice theme, some tablerecords etc. etc.


what I don't know: how many queries are executed, which for-loops are causing some time, is there string-concat that causes some sluggishness etc etc.





I usually do a bunch of logs to General Log when nothing is showing as a slow SQL, slow extension, etc.

J.Ja

Joost,

You can try to use the ticks action (from ticks extension) that can be set between part of the flow (within actions) to see what time it takes to exectue that part. On that way you should be able to find it out.

Kind regards,
Evert
True (although in Java it's slightly more complicated, lacking a proper tick).

Still, I only have "slightly" control over my actions.

What I still am lacking:
  • generation speed. example: tablerecords witha  couple of if-statements in expressions. etc.
  • total effective rendering.
    afaik, the flow is something like this:
    1. first you get the page-preparation
    2. partial rendering of the screen
    3. webblock-preparation
    4. webblock rendering
    5. goto 2 until done
Simply said, I can trace timing of the individual parts, but I still miss stuff.

I still  have to manually sum those ticks of each preparation.
And then, I still missing time. where is it spent? is slow InternetServer? in what?





Joost,

True. Thought the rendering time of a tablerecords can be done by using the ticks around a ajax refresh of that table records. But still you would miss some items.

Would be nice to have some developer option that can be set 'on' and provide more information about what is done in which time.

Kind regard,
Evert
Hello,

What we are missing is an Outsystems Profiler component (like the debugger) :-)

I recently had the same problem (a page took ~ 3 secs to load), and it took me some time to figure it out. Both Front-end and database servers were near 0% on CPU, profiling the BD showed nearly 0 ms execution time. I had recordlists of webblocks, and I started thinking it could be generation time on outsystems server, rendering time on the client or the size of the page, but no.

The problem was that the recordlists included a webblock which had an if with a function from a Reference, which would call a webservice. Each call to the webservice was extremely fast, so in design time we did not realize it could be a problem, but when put in a recordlist, we ended up with 3 seconds page load time.

I only found out the problem by debugging the page generation step by step.

Is there a better way to do this? Where could I have seen the problem in an easier way?

Best Regards,
Pedro Vieira
Pedro -

There are a LOT of lessons to learn about performance, with any system. :( The good news is, most of the performance issues we have found are fairly easily categorized.

Is there a better way? Not that I know of, But once you know what to look for, it is not too tricky either, once you know what the problem pages are.

J.Ja