Performance Awareness (Magic xpa 3.x)
In the Rich Client paradigm, processing is split between the server and the client. The communication between the two is done by sending a compressed XML file. This communication bus can create a bottleneck, which can affect program performance. So, to create efficient programs, you need to minimize the amount of back-and-forth communication.
For instance, DBMS access happens on the server, but user interaction takes place on the client. Ideally, once the data is sent to the client, the user could tab from field to field without any further interaction to the server, until the record is ready to be committed. However, if you were to add a DBExist() function inside a condition that is evaluated in a Control Suffix, then access must be made to the server every time the user tabs out of that field, which would slow down the user interaction.
Fortunately, you don't need to memorize what can and cannot be done, or what is and is not efficient. There are tools within Magic xpa to make it more obvious what is going on. In this section we'll show you how to use those tools.
Note:
|
When logs are used, each request is written to the logs, so when performing lots of requests (such as in a non-interactive program), the performance may look slow.
|
Some of the areas we'll be covering:
-
Forms
-
Data View: The Data View is established before the task starts, and this can affect how the Variables are handled.
-
Functions: Each Function will be client side, server side, or Neutral.
-
Expressions: The Side of the Data View and Functions will determine the Side of the Expressions.
-
Handlers: Where a handler is executed will depend on where it is called from, and the Operations and Expressions it uses.
Basic Building Blocks
Data View Section
Tracking the Task Flow
Forms and Controls
Handlers
Handler Operations
Task Settings