⍝ Timing test script for [append] and [retain]: ⍝ ⍝ test 'append_retain' ⍝ performance timing test. ⍝ 1 test 'append_retain' ⍝ 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 ⍝ int 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 ⍝ int scalar values. dvals←enclose rows 2 4⍴*1 ⍝ doub matrix values. vals←cvals ivals dvals ⍝ values for all fields. app←{tab ddb.append vals} ⍝ re-append values. ret←{tab ddb.retain 0 } ⍝ remove all rows. {}⎕wa ⍝ compact for consistent test. {} {0}∘ret∘app¨time ⍳loops ⍝ append/compress timing test. +ddb.remove tab ⍝ remove table. 1 ⍝ ⍝ Back to: Contents