Improving speed of web apps

Improving speed of web apps

  

Good day!

I am experiencing slow-downs on some of my pages that loads photos and pages that have a lot of elements in the preparation. Also, I experience it on actions that have a lot of items. (many of which are aggregates)

Is there a way to improve the speed of applications? Or is it really like this for personal environments? (Will I see improvement on speed once the app is licensed?)

Thank you!

Hi Michael,

You have minimal resources on a personal environment.

If you get your own production licence you can add and upgrade as many front-end and back-end servers as you want which would probably improve performance.


Keith

Hi Keith,

I see. I'll put this in consideration.

Thanks for the response!

Hi Michael,

In personal environment definitely we are having limited resources.

But you can cross verify your logic in preparation if you are loading multiple photos at page load then you need to make sure what amount of binary data you are fetching from database for optimizing it at the time of inserting the photo(binary data) into database you need to compress the binary(photo) in this way you can improve the performance.


Regards

-SK-

Photo/Images should be on another table. Separate it from data table.

For more tips and tricks you can read these

https://success.outsystems.com/Documentation/Best_Practices/OutSystems_Platform_Best_Practices

https://success.outsystems.com/Documentation/Best_Practices/Performance_Best_Practices

Eric Halim wrote:

Photo/Images should be on another table. Separate it from data table.

For more tips and tricks you can read these

https://success.outsystems.com/Documentation/Best_Practices/OutSystems_Platform_Best_Practices

https://success.outsystems.com/Documentation/Best_Practices/Performance_Best_Practices


wow keren :)

Hi Michael,

There are many things that contribute to performance. In addition to whats told above, performance is also affected by network, database query, the way you coding, etc. For query, I think Outsystems has been designed where performance in mind.

regards,

indra

Eric Halim wrote:

Photo/Images should be on another table. Separate it from data table.

For more tips and tricks you can read these

https://success.outsystems.com/Documentation/Best_Practices/OutSystems_Platform_Best_Practices

https://success.outsystems.com/Documentation/Best_Practices/Performance_Best_Practices

Thanks for the tip! I have done that already but some pages still load slow (interestingly enough, if I do not aggregate the entities related to that table everything is fast)


Indra Budiantho wrote:

Hi Michael,

There are many things that contribute to performance. In addition to whats told above, performance is also affected by network, database query, the way you coding, etc. For query, I think Outsystems has been designed where performance in mind.

regards,

indra

I see. Thank you for the insight. Is there any sort of number of aggregates, database entities or attributes, record quantity that when reached is expected to slow down the web app? Or am I just overthinking this?

Thanks!


How many numbers we are talking here? I don't think so....

In 90% of the cases, you just have a huge viewstate on your page and don't even realize it. Other 10% of the cases, you're doing a query inside a foreach. There's a 10% error margin on those statistics.


Oh, you don't know what's this thing called "viewstate"? Go read this forum post and it will explain it to you: https://www.outsystems.com/forums/discussion/10458/view-state-in-outsystems-applications/


OutSystems does a really nice job of optimizing the viewstate (in fact, it does much better than any other development tool that I've found so far). The problem is that it's hard to understand how these optimizations work.

Most of the times, these optimizations fail because, on some screen action, you are reusing some large piece of information that you fetched on the preparation. If you do that, this large piece of information will end up in your viewstate. And that is bad for you. A solution for it is to fetch this piece of information from the database again, when you need it on your screen action.


If you want to dig deep (really deep), this is a very nice article describing how OutSystems optimizes database queries and the viewstate: https://medium.com/outsystems-engineering/outsystems-compiler-data-optimizations-9bb4b3cb8567