O$4 vs O$3 performance

Mary Whittaker mary at healthsolve.com.au
Wed Apr 29 19:41:04 EDT 2009

Hi Stefan,

I suspect your advice on redraws may be one of the causes of our  
problem.  I did some testing last night and found that data access is  
actually pretty good and it is other front-end stuff that is slow.   
One example is some list handling code.  In this example, a list  
(ibookingslist) has been loaded and each line is being processed as  
follows :

For j from 1 to ibookingslist.$linecount() step 1
    Do method makechecklist (ibookingslist.[j])
    Do method addbookingcolour (ibookingslist.[j].AT_COLOUR,j)
End For

The method 'makechecklist' accepts it's parameter as a 'Field  
Reference'.  I am not in the habit of passing a row in a list in this  
way (someone else wrote it !!) so I changed it to this

For j from 1 to ibookingslist.$linecount() step 1
    Do lvRow.$assignrow(ibookingslist.[j],ktrue)
    Do method makechecklist (lvRow)
    Do method addbookingcolour (lvRow.AT_COLOUR,j)
    Do ibookingslist.[j].$assignrow(lvRow,ktrue)
End For

This made an amazing difference.  It reduced the load time in one  
case from about 16 seconds to 4.  I guess this is an example of non- 
efficient programming that wasn't an issue in OS3 but is in OS4.  It  
is this sort of thing that I need to identify somehow and fix.  Any  
more advice like Stefan's would be greatly appreciated.

On 29/04/2009, at 9:34 PM, Stefan Csomor wrote:

> Hi Mary
>> Hi all,
>> I just logged this query with Omnis Tech Support and I need some
>> pretty urgent feedback.  Just wondering if any of you have any  
>> advice?
> my own finding with 4.3.1 with regard to earlier 4.0 versions, was  
> an effect
> of redraws being more costly than earlier, so while I was sloppily  
> just
> having a 'Redraw working message' in the loop, I've changed that in  
> the more
> critical parts to things like
> While flag true
>   If mod(i,50)=0
>      Redraw working message
>   End If
> ...
> i being some iteration variable
> so that it still gives some feedback, but doesn't redraw for every  
> single
> iteration
> just my 0.02$
> Stefan
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com

Kind Regards

Mary Whittaker
Senior Business Analyst

Office:  61 08 8203 0500
mobile: 0417 848028
Email: mary at clintelsystems.com.au

More information about the omnisdev-en mailing list