Menu

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

Download this file

104 lines (82 with data), 2.3 kB

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

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.