aboutsummaryrefslogtreecommitdiff
path: root/bench.tcl
diff options
context:
space:
mode:
authorantirez <antirez>2005-03-09 07:19:41 +0000
committerantirez <antirez>2005-03-09 07:19:41 +0000
commit84dcf68e1127c62feaaea63ccf88f6fc50764311 (patch)
treef2c9a17363c76981e293fe06613d81f7bfeb6a11 /bench.tcl
parenta0944453b0c6b1ef1f83713708cb41dd50e21925 (diff)
downloadjimtcl-84dcf68e1127c62feaaea63ccf88f6fc50764311.zip
jimtcl-84dcf68e1127c62feaaea63ccf88f6fc50764311.tar.gz
jimtcl-84dcf68e1127c62feaaea63ccf88f6fc50764311.tar.bz2
An initial [format] command.
Diffstat (limited to 'bench.tcl')
-rw-r--r--bench.tcl23
1 files changed, 22 insertions, 1 deletions
diff --git a/bench.tcl b/bench.tcl
index 1c1f128..4348301 100644
--- a/bench.tcl
+++ b/bench.tcl
@@ -125,6 +125,26 @@ proc sieve {num} {
return $count
}
+proc sieve_dict {num} {
+ while {$num > 0} {
+ incr num -1
+ set count 0
+ for {set i 2} {$i <= 8192} {incr i} {
+ dict set flags $i 1
+ }
+ for {set i 2} {$i <= 8192} {incr i} {
+ if {[dict get $flags $i] == 1} {
+ # remove all multiples of prime: i
+ for {set k [expr {$i+$i}]} {$k <= 8192} {incr k $i} {
+ dict set flags $k 0
+ }
+ incr count
+ }
+ }
+ }
+ return $count
+}
+
### ARY ########################################################################
proc ary n {
@@ -290,6 +310,7 @@ bench {mini loops} {miniloops}
bench {fibonacci(25)} {fibonacci 25}
bench {heapsort} {heapsort_main}
bench {sieve} {sieve 10}
+bench {sieve [dict]} {sieve_dict 10}
bench {ary} {ary 100000}
bench {repeat} {use_repeat}
bench {upvar} {upvartest}
@@ -309,4 +330,4 @@ if {$batchmode} {
set ver Jim[info version]
}
puts [list $ver $benchmarks]
-} \ No newline at end of file
+}