Menu

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

Download this file

98 lines (73 with data), 1.8 kB

#§
#§  CompPerf - ot_upvar.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 upvar-1.1 {DUMMY} {
    upvar I I
    set I 2
}

proc upvar-1.2 {DUMMY} {
    upvar #0 I I
    set I 2
}

proc upvar-1.3 {DUMMY} {
    upvar \#0 I I
    set I 2
}

proc upvar-1.4 {DUMMY} {
    upvar 1 I I
    set I 2
}

proc upvar-2.2 {X} {
    upvar $X I I
    set I 2
}

proc upvar-2.3 {X} {
    upvar $X I I
    set I 2
}

proc upvar-2.4 {X} {
    upvar $X I I
    set I 2
}


##
## -----------------------------------------------------
## make the test's
##

set NUM     [ ::PerfLib::Num 10000 ]

set TOTAL   [ time {

  ## static
    ::PerfLib::Register upvar-1.1 "static upvar default"
    ::PerfLib::Run      upvar-1.1 [time {upvar-1.1 DUMMY} $NUM]

    ::PerfLib::Register upvar-1.2 "static upvar global"
    ::PerfLib::Run      upvar-1.2 [time {upvar-1.2 DUMMY} $NUM]

    ::PerfLib::Register upvar-1.3 "static upvar \global"
    ::PerfLib::Run      upvar-1.3 [time {upvar-1.3 DUMMY} $NUM]

    ::PerfLib::Register upvar-1.4 "static upvar 1"
    ::PerfLib::Run      upvar-1.4 [time {upvar-1.4 DUMMY} $NUM]

  ## dynamic
    ::PerfLib::Register upvar-2.2 "dynamic upvar global"
    ::PerfLib::Run      upvar-2.2 [time {upvar-2.2 #0} $NUM]

    ::PerfLib::Register upvar-2.3 "dynamic upvar \global"
    ::PerfLib::Run      upvar-2.3 [time {upvar-2.3 \#0} $NUM]

    ::PerfLib::Register upvar-2.4 "dynamic upvar 1"
    ::PerfLib::Run      upvar-2.4 [time {upvar-2.4 1} $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.