tclcompiler Code
Brought to you by:
aotto1968
#§ #§ CompPerf - tcl_data.perf #§ #§ (C) IPN - Ingenieurbuero fuer Praezisionsnumerik #§ #§ Dipl.-Ing. Andreas Otto #§ Ulmenstrasse 3 #§ D-34289 Zierenberg #§ mailto:aotto@t-online.de #§ #§ Alle Rechte vorbehalten #§ package require PerfLib ## ## ----------------------------------------------------- ## the test-procs ## proc fill-1 {} { global size list set size 500 set list {} for {set i 0} {$i < $size} {incr i} { lappend list $i } } proc fill-2 {} { global array size catch { unset array } for {set i 0} {$i < $size} {incr i} { set array($i) $i } } # Put data in a list proc data-create-list {size} { for {set i 0} {$i < $size} {incr i} { lappend list $i } } # Put data in an array proc data-create-array {size} { for {set i 0} {$i < $size} {incr i} { set array($i) $i } } # Access data in a list proc data-access-list {listVar size} { upvar 1 $listVar list for {set i 0} {$i < $size} {incr i} { set bogus [lindex $list $i] } } # Access data in an array proc data-access-array {arrayVar size} { upvar 1 $arrayVar array for {set i 0} {$i < $size} {incr i} { set bogus $array($i) } } ## ## ----------------------------------------------------- ## make the test's ## set NUM [ ::PerfLib::Num 500 ] set TOTAL [ time { ::PerfLib::Register fill-1 "DATA fill a list" ::PerfLib::Run fill-1 [time {fill-1} $NUM] ::PerfLib::Register fill-2 "DATA fill a array" ::PerfLib::Run fill-2 [time {fill-2} $NUM] ::PerfLib::Register data-create-list "DATA create in a list" ::PerfLib::Run data-create-list [time {data-create-list $size} $NUM] ::PerfLib::Register data-create-array "DATA create in an array" ::PerfLib::Run data-create-array [time {data-create-array $size} $NUM] ::PerfLib::Register data-access-list "DATA access in a list" ::PerfLib::Run data-access-list [time {data-access-list list $size} $NUM] ::PerfLib::Register data-access-array "DATA access in a array" ::PerfLib::Run data-access-array [time {data-access-array array $size} $NUM] } 1 ] ## ## ----------------------------------------------------- ## cleanup ## ::PerfLib::Exit