tclcompiler Code
Brought to you by:
aotto1968
#§ #§ CompPerf - tcl_eval.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 e-cmd {val} { set cmd [list set val $val] eval $cmd } proc e-list val { eval [list set val $val] } proc e-str val { eval set val [list $val] } proc eval-std {l1} { eval list $l1 } proc eval-list {l1} { eval [list list] $l1 } proc uplevel-std {l1} { uplevel 1 list $l1 } proc uplevel-list {l1} { uplevel 1 [list list] $l1 } proc makeLists {{size 1000}} { global Sobj Lobj LSobj set Sobj "" set Lobj [list] set LSobj [list] for {set i 0} {$i < $size} {incr i} { append Sobj "$i " lappend Lobj $i lappend LSobj $i } string length $LSobj } proc makeListOfLists {{size 1000}} { set LLobj [list] for {set i 0} {$i<$size} {incr i} { lappend LLobj [list $i $i] } return $LLobj } ## ## ----------------------------------------------------- ## make the test's ## set NUM [ ::PerfLib::Num 1000 ] set NUM2 [ expr { $NUM / 2 } ] set TOTAL [ time { ::PerfLib::Register makeLists "make Lists" ::PerfLib::Run makeLists [time {makeLists} $NUM2] ::PerfLib::Register makeListOfLists "make List Of Lists" ::PerfLib::Run makeListOfLists [time {makeListOfLists} $NUM2] ::PerfLib::Register e-cmd "EVAL cmd eval in list obj var" ::PerfLib::Run e-cmd [time {e-cmd val} $NUM] ::PerfLib::Register e-list "EVAL cmd eval as list" ::PerfLib::Run e-list [time {e-list val} $NUM] ::PerfLib::Register e-str "EVAL cmd eval as string" ::PerfLib::Run e-str [time {e-str val} $NUM] makeLists ::PerfLib::Register eval-std "EVAL cmd and mixed lists" ::PerfLib::Run eval-std [time {eval-std $Sobj} $NUM] ::PerfLib::Register eval-list "EVAL list cmd and mixed lists" ::PerfLib::Run eval-list [time {eval-list $LSobj} $NUM] ::PerfLib::Register eval-listb "EVAL list cmd and pure lists" ::PerfLib::Run eval-listb [time {eval-list $Lobj} $NUM] makeLists ::PerfLib::Register uplevel-std "UPLEVEL cmd and mixed lists" ::PerfLib::Run uplevel-std [time {uplevel-std $Sobj} $NUM] ::PerfLib::Register uplevel-list "UPLEVEL list cmd and mixed lists" ::PerfLib::Run uplevel-list [time {uplevel-list $LSobj} $NUM] ::PerfLib::Register uplevel-listb "UPLEVEL list cmd and pure lists" ::PerfLib::Run uplevel-listb [time {uplevel-list $Lobj} $NUM] } 1 ] ## ## ----------------------------------------------------- ## cleanup ## ::PerfLib::Exit