Fantastic stuff David - thanks fro taking the time.
Sharing your experience with Servoy is much appreciated.
Cheers
Ian
Fantastic stuff David - thanks fro taking the time.
Sharing your experience with Servoy is much appreciated.
Cheers
Ian
I optimized this a bit in Servoy 4.1.4. It doesn’t take more then a second now in my tests.
As you said earlier, selecting an item results in 23 selects and 1 update as mentioned on forum:
This (without time needed to set-up queries and process response) took about 18% - 20% of the time in my environment. A lot of the remaining time was used to update the valuelists - that generated heavy UI related activity (that is now optimized). Another small optimization was related to a number of labels that had “displayTags” set to true even if that wasn’t needed.
Let us know if you can see the difference as well when you try it.
Andrei Costescu:
I optimized this a bit in Servoy 4.1.4. It doesn’t take more then a second now in my tests.As you said earlier, selecting an item results in 23 selects and 1 update as mentioned on forum:
- 10 selects done for a related dataprovider (caching relation foundset for siblings of parent record);
- 1 update as a result of a calculation being calculated when accessed;
- 12 selects for updating valuelists as a result of calculation update;
- 1 select to access global relation content because of an access in the onRecordSelect handler.
This (without time needed to set-up queries and process response) took about 18% - 20% of the time in my environment. A lot of the remaining time was used to update the valuelists - that generated heavy UI related activity (that is now optimized). Another small optimization was related to a number of labels that had “displayTags” set to true even if that wasn’t needed.
Let us know if you can see the difference as well when you try it.
Great stuff thanks Andrei - you guys do great work!
Is there a time line on the release of 4.1.4 now?
Kahuna:
Is there a time line on the release of 4.1.4 now?
Not really - at least not an exact date. It will probably appear in the following weeks.
david:
Servoy “lazy loads” stuff as needed. This includes forms (first time you hit a form it is loaded into memory) and records (first time you hit a record all of it’s related data is loaded). Related data is loaded if a related field is showing, you have a calculation referencing a relation, and/or if you have code referencing a relation on a form event that fires when the record is selected (onRecordSelection being the most obvious one).There are ways to preload both forms and data. Form preloading is fairly well discussed around the forum and if I remember correctly, Scott’s site has an article on it.
Keep in mind Servoy “garbage collects” (dumps out of memory) unused objects and data. You have very little control when this process occurs. You can only increase the client heap size in the admin application…
david, this info is invaluable, so where is your Donate button?
Andrei Costescu:
… A lot of the remaining time was used to update the valuelists - that generated heavy UI related activity (that is now optimized) …
Thanks for noticing and working on this one. Now that you mention it, certain value list types have definitely been a slow point. We’ve had to flip out dynamically generated value lists with static value lists (for the session) to speed things up.
kazar:
david, this info is invaluable, so where is your Donate button?
cool!