⍝ Timing test script for [put]:
⍝
⍝ test 'put' ⍝ performance timing test.
⍝ 1 test 'put' ⍝ performance timing test (show progress).
⍝
⍝ Set [loops] and [rows] to suit your machine:
getenv←{⍎⊃(0=⎕nc ⍵)↓ ⍵ '⍺'} ⍝ get environment variable.
loops ← 1000 getenv 'loops' ⍝ default 1000 loops.
rows ← 1000 getenv 'rows' ⍝ default 1000-row table.
nest ← 0 getenv 'nest' ⍝ default simple fields.
+ddb.remove'ddb test' ⍝ ensure file removed.
0
chars←'chars' 80, 10 × 1-2×nest ⍝ char vectors
ints←'ints' 323 ⍝ intg scalars
doubs←'doubs' 645, 2 4 × 1-2×nest ⍝ doub matrices
tab←'ddb test' ddb.create chars ints doubs ⍝ create table.
enclose←{nest:⊂[1↓⍳⍴⍴⍵]⍵ ⋄ ⍵} ⍝ enclose if nested.
cvals←enclose rows 10⍴⎕a ⍝ char vector values.
ivals← ⍳rows ⍝ intg scalar values.
dvals←enclose rows 2 4⍴*1 ⍝ doub matrix values.
vals←cvals ivals dvals ⍝ values for all fields.
{}tab ddb.append vals ⍝ append some values.
put←{ ⍝ replace all fields.
mask←(rows|⍵)>⍳rows ⍝ mask for first ⍵ rows.
puts←mask∘⌿¨vals ⍝ first ⍵ rows.
tab ddb.put mask tab.names puts ⍝ replace first ⍵ rows.
}
{}⎕wa ⍝ compact for consistent test.
{} {0}∘put¨time ⍳loops ⍝ put timing test.
+ddb.remove tab ⍝ remove table.
1
⍝
⍝ Back to: Contents