tclcompiler Code
Brought to you by:
aotto1968
#§ #§ CompPerf - ot_uplevel.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 uplevel-1.1 { X } { uplevel set I $X } proc uplevel-1.2 { X } { uplevel #0 set I $X } proc uplevel-1.3 { X } { uplevel \#0 set I $X } proc uplevel-1.4 { X } { uplevel 1 set I $X } proc uplevel-1.5 { X } { uplevel 0 set I $X } proc uplevel-2.1 {} { uplevel set I 2 } proc uplevel-2.2 {} { uplevel #0 set I 2 } proc uplevel-2.3 {} { uplevel \#0 set I 2 } proc uplevel-2.4 {} { uplevel 1 set I 2 } proc uplevel-2.5 {} { uplevel 0 set I 2 } ### AreyX proc uplevel-3.1 {} { global J set J 2 uplevel {set I $J} } proc uplevel-3.2 {} { global J set J 2 uplevel #0 {set I $J} } proc uplevel-3.3 {} { global J set J 2 uplevel \#0 {set I $J} } proc uplevel-3.4 {} { global J set J 2 uplevel 1 {set I $J} } proc uplevel-3.5 {} { global J set J 2 uplevel 0 {set I $J} } ## ## ----------------------------------------------------- ## make the test's ## set NUM [ ::PerfLib::Num 15000 ] set TOTAL [ time { ## dynamic ::PerfLib::Register uplevel-1.1 "dynamic uplevel default" ::PerfLib::Run uplevel-1.1 [time {uplevel-1.1 1} $NUM] ::PerfLib::Register uplevel-1.2 "dynamic uplevel global" ::PerfLib::Run uplevel-1.2 [time {uplevel-1.2 1} $NUM] ::PerfLib::Register uplevel-1.3 "dynamic uplevel \global" ::PerfLib::Run uplevel-1.3 [time {uplevel-1.3 1} $NUM] ::PerfLib::Register uplevel-1.4 "dynamic uplevel 1" ::PerfLib::Run uplevel-1.4 [time {uplevel-1.4 1} $NUM] ::PerfLib::Register uplevel-1.5 "dynamic uplevel 0" ::PerfLib::Run uplevel-1.5 [time {uplevel-1.5 1} $NUM] ## static ::PerfLib::Register uplevel-2.1 "static uplevel default" ::PerfLib::Run uplevel-2.1 [time {uplevel-2.1} $NUM] ::PerfLib::Register uplevel-2.2 "static uplevel global" ::PerfLib::Run uplevel-2.2 [time {uplevel-2.2} $NUM] ::PerfLib::Register uplevel-2.3 "static uplevel \global" ::PerfLib::Run uplevel-2.3 [time {uplevel-2.3} $NUM] ::PerfLib::Register uplevel-2.4 "static uplevel 1" ::PerfLib::Run uplevel-2.4 [time {uplevel-2.4} $NUM] ::PerfLib::Register uplevel-2.5 "static uplevel 0" ::PerfLib::Run uplevel-2.5 [time {uplevel-2.5} $NUM] ## AreaX ::PerfLib::Register uplevel-3.1 "AreaX uplevel default" ::PerfLib::Run uplevel-3.1 [time {uplevel-3.1} $NUM] ::PerfLib::Register uplevel-3.2 "AreaX uplevel global" ::PerfLib::Run uplevel-3.2 [time {uplevel-3.2} $NUM] ::PerfLib::Register uplevel-3.3 "AreaX uplevel \global" ::PerfLib::Run uplevel-3.3 [time {uplevel-3.3} $NUM] ::PerfLib::Register uplevel-3.4 "AreaX uplevel 1" ::PerfLib::Run uplevel-3.4 [time {uplevel-3.4} $NUM] ::PerfLib::Register uplevel-3.5 "AreaX uplevel 0" ::PerfLib::Run uplevel-3.5 [time {uplevel-3.5} $NUM] } 1 ] ## ## ----------------------------------------------------- ## cleanup ## ::PerfLib::Exit