Recital

Login Register

Recital tuning guide - Part 1

Recital is a rich and versatile product with many ways to do the same thing. Developers usually write code in the way that they are accustomed to without paying much attention to how this will perform in a multi-user environment with large amounts of users and transactions. The best way to optimize Recital applications is to use the built-in tuning capabilities introduced in Recital 10.

Code and data profiling

Code and Data profiling is available in Recital 10 and above.
 
The following commands are used for code profiling:
 
set profile on | off
clear profile
set profile to "command", "id" [, "description"]
list profile
profile command...
 
The "command" can be any of the following:
  • "start"
  • "update"
  • "stop"
"id" should be unique up to 10 characters long.
"description" can be any string meaningful to your application.
 
in its simplest use:
profile do myapp
 
To profile specific areas of your application, you must place "set profile to" commands in your application code. If profile is off (set profile off) then the "set profile to" commands are ignored.
 
e.g.
set profile on
set profile to "start", "test1"
replace all mydate with date()
set profile to "stop", "test1"
set profile to "start", "test2"
do my proc
set profile to "stop", "test2"
set profile to "start", "test3"
replace all mydate with date()
set profile to "stop", "test3"
list profile to file profile.txt

The output from the profile command will provide an analysis of disk i/o operations, locking operations, and procedure calls with average execution time per call. e.g.
Benchmark results:

Create table and indexes elapsed time was 00:00:08
First test elapsed time was 00:00:42
Second test elapsed time was 00:00:42
Third test elapsed time was 00:00:45
Total elapsed time was 00:02:17

Profiler I/O statistics:

cluster = on
replication = off
iologging = off
syslogging = on
iostats = on
dcache = off
fcache = off
icache = 100
dcache = 100
development = on
compile = on
locktype = pessimistic

opens = 2
creates = 1
closes = 1
icreates = 1
iopens = 3
icloses = 2
reads = 1200005
writes = 400000
deletes = 0
appends = 100000
dcachereads = 0
dcachewrites = 0
icachereads = 503177
icachewrites = 822676
ireads = 2481565
iwrites = 456020
gcachereads = 0
gcachewrites = 0
gcachehits = 0
gcacheturns = 0
readlocks = 1200009
writelocks = 700002
unlocks = 1900009
fstatfs = 0
keystrokes = 0
popens = 0
pcloses = 0
doprocs = 0
dofuncs = 0
copies = 0
disk reads = 22.296 GB
disk writes = 6.803 GB
elapsed time = 137 seconds
disk operations = 217.502 MB/sec
locking operations = 27737.372/sec

Profiler procedure calls:

Proc Calls Secs/call uSecs/call
---------- ---------- ---------- -----------
TEST1 1 2 667
TEST2 1 4 453
TEST3 1 4 587
Twitter

Copyright © 2024 Recital Software Inc.

Login

Register

User Registration
or Cancel