Performance on the client side

Hi there.

We are encountering performance problems with a fairly complex Casabac-Page.
Is there some approved method for profiling such pages?

With kind regards
Carsten Habicht

…there are several pages. I hopefully will write a tech paper on this topic soon.

Here are the most crucial things:

Use the combination ctrl-alt-shift-s in a page to see a short dump. The dump tells you what we do internally, and outputs the number of milliseconds that are used for page updates. In the dump the most current item is on the top. Events like “submit to server executed”, “response received” etc. are kept in the dump. Each line has a minute/second/milli stamp so you can see where performance is “burned”.

In case the page is slow, please check chapter “optimizing page performance” in the developer’s guide, there in “Working with containter controls”. Esp. if you are using percentage sizing both for horizontal and vertical sizing.

Check the ROWCOUNT of your TEXTGRIDs and ROWTABLEAREA2. They should not exceed 30 without good reason. Check the number ofl columns inside ROWTABLEAREA2 as well, things slow down with 15 and more columns.

Hope this helps… Bjoern

Fine. Thanks. :o)
Now I got a dump with that (more verbose) ctrl+shift+alt+d hotkey. Can you please give me some help on the interpretation of those lines, especially what happens around “10/9/578 ==> page.reactOnInit started - showPage date = 8/968”?

CASA26_1142283972859//11423402134049041944837650264384////de.trifels.web.casabac.KomplexDetails
10/10/593 ==> reactOnNewModel - finished
10/10/562 ==> FOCUS - Setting focus in focusable 0
10/10/562 ==> FOCUS - No explicit focus set by application, normal focus selection started
10/10/562 ==> FOCUS - pointFocusToFirstRequestor started, number of focus requestors = 0
10/10/531 ==> FOCUS - pointFocus started
10/10/531 ==> reactOnNewModel - Setting focus
10/10/531 ==> reactOnNewModel - Duration of client update = 469
10/10/531 ==> reactOnNewModel - Duration of switchToDisplay = 16
10/10/515 ==> reactOnNewModel - informing listeners - finished
10/10/515 ==> reactOnNewModel - propertyListenersTBP[X533] 0
10/10/515 ==> reactOnNewModel - propertyListenersTBP[X527] 0
10/10/515 ==> reactOnNewModel - propertyListenersTBP[X521] 15
10/10/500 ==> reactOnNewModel - propertyListenersTBP[X515] 0
10/10/500 ==> reactOnNewModel - propertyListenersTBP[X509] 0

... <cut because post was too long> ...

10/10/312 ==> reactOnNewModel - modellistener[176] 0
10/10/312 ==> reactOnNewModel - modellistener[175] 15
10/10/281 ==> reactOnNewModel - modellistener[174] 0
10/10/281 ==> reactOnNewModel - modellistener[173] 16
10/10/281 ==> reactOnModelUpdateTEXTGRID - After innerHTML
10/10/281 ==> reactOnModelUpdateTEXTGRID - Before innerHTML
10/10/281 ==> reactOnModelUpdateTEXTGRID - lines processed: 15
10/10/265 ==> reactOnModelUpdateTEXTGRID - starting line processing
10/10/265 ==> reactOnNewModel - modellistener[172] 0
10/10/265 ==> reactOnNewModel - modellistener[171] 0
10/10/265 ==> reactOnNewModel - modellistener[170] 0
10/10/265 ==> reactOnNewModel - modellistener[169] 15
10/10/250 ==> reactOnNewModel - modellistener[168] 0
10/10/250 ==> reactOnNewModel - modellistener[167] 0

... <cut because post was too long> ...

10/10/156 ==> reactOnNewModel - modellistener[12] 0
10/10/156 ==> reactOnNewModel - modellistener[11] 0
10/10/156 ==> reactOnNewModel - modellistener[10] 0
10/10/156 ==> reactOnNewModel - modellistener[9] 16
10/10/140 ==> reactOnNewModel - modellistener[8] 0
10/10/140 ==> reactOnNewModel - modellistener[7] 0
10/10/140 ==> reactOnNewModel - modellistener[6] 0
10/10/140 ==> reactOnNewModel - modellistener[5] 0
10/10/140 ==> reactOnNewModel - modellistener[4] 0
10/10/140 ==> reactOnNewModel - modellistener[3] 0
10/10/140 ==> reactOnNewModel - modellistener[2] 0
10/10/140 ==> reactOnNewModel - modellistener[1] 0
10/10/140 ==> reactOnNewModel - modellistener[0] 15
10/10/125 ==> reactOnNewModel - informing listeners
10/10/125 ==> reactOnNewModel - fill textid spans - end
10/10/125 ==> reactOnNewModel - fill textid spans - start
10/10/125 ==> reactOnNewModel - transfer model into datastructure - end
10/10/62 ==> reactOnNewModel - transfer model into datastructure - start
10/10/62 ==> reactOnNewModel - convert special characters - end
10/10/62 ==> reactOnNewModel - convert special characters - start
10/10/62 ==> reactOnNewModel - started
10/10/31 ==> fetchModelFromServer - Submit executed
10/10/31 ==> fetchModelFromServer - Model is fetched from server
10/10/31 ==> initWithModelId... - submitting
10/10/31 ==> initWithModelId... - started
10/9/578 ==> page.reactOnInit started - showPage date = 8/968





CASA26_1142283972859//11423402134049041944837650264384////de.trifels.web.casabac.KomplexPopup
10/9/0 ==> reactOnNewModel - finished
10/8/984 ==> FOCUS - Setting focus in focusable 0
10/8/984 ==> FOCUS - No explicit focus set by application, normal focus selection started
10/8/984 ==> FOCUS - pointFocusToFirstRequestor started, number of focus requestors = 0
10/8/968 ==> FOCUS - pointFocus started
10/8/968 ==> reactOnNewModel - Setting focus
10/8/968 ==> reactOnNewModel - Duration of client update = 15
10/8/968 ==> reactOnNewModel - Duration of switchToDisplay = 0
10/8/968 ==> reactOnNewModel - informing listeners - finished
10/8/968 ==> reactOnNewModel - modellistener[3] 0
10/8/968 ==> reactOnNewModel - modellistener[2] 0
10/8/968 ==> reactOnNewModel - modellistener[1] 0
10/8/968 ==> reactOnNewModel - modellistener[0] 15
10/8/953 ==> reactOnNewModel - informing listeners
10/8/953 ==> reactOnNewModel - fill textid spans - end
10/8/953 ==> reactOnNewModel - fill textid spans - start
10/8/953 ==> reactOnNewModel - transfer model into datastructure - end
10/8/953 ==> reactOnNewModel - transfer model into datastructure - start
10/8/953 ==> reactOnNewModel - convert special characters - end
10/8/953 ==> reactOnNewModel - convert special characters - start
10/8/953 ==> reactOnNewModel - started
10/8/921 ==> fetchModelFromServer - Submit executed
10/8/921 ==> fetchModelFromServer - Model is fetched from server
10/8/921 ==> initWithModelId... - submitting
10/8/921 ==> initWithModelId... - started
10/8/890 ==> page.reactOnInit started - showPage date = 8/593

We don’t do that in the page.

Thanks so far.
With kind regards
Carsten Habicht

P.S.: The upload of attachments to the forum seems to be broken…
(Upload Error: Could not upload Attachment to ./files/casalog_888.txt.)

FYI:
We achieved increased performance by replacing
a rowtabarea-control with a rotabsubpages-control
(and thus the initally shown html page is half the size it was before).

Hello,

is the announced tech paper already available?

Can you please explain the lines like 10/10/593 ==> reactOnNewModel - finished (Carsten Habicht has already asked, too)?

Thanks in advance for answering.

H. Johannes