Menu

[r3]: / lib / CompPerf.CVS / ot_uplevel.perf  Maximize  Restore  History

Download this file

160 lines (118 with data), 3.3 kB

#§
#§  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

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.