Re: Performance comparison Q
"Jeff Godfrey" <[email protected]> Mon, 9 May 2005 11:46:23 -0500
| Newsgroups | gmane.comp.db.metakit |
|---|---|
| Message-ID | <0eed01c554b6$a35e8970$6500a8c0@quantex> |
----- Original Message ----- From: "Jean-Claude Wippler" <[email protected]> To: "Metakit list" <[email protected]> Sent: Monday, May 09, 2005 11:30 AM Subject: Re: [Metakit] Performance comparison Q > [email protected] wrote: > >> If you have the data in an array > > No, list (Tcl arrays are hash tables, I am interested in vector access). > >> % time {for {set i 0} {$i < 49999} {incr i} {incr sum [lindex $data >> $i]}} 10 >> 198283 microseconds per iteration > > Fascinating. I dismissed this one and used foreach, which is slower. > Still under 1% of C. > > -jcw How about the following: Jeff proc sum1 {} { set sum 0 foreach int $::intList {incr sum $int} } proc sum2 {} { set sum 0 for {set i 0} {$i < 50000} {incr i} { incr sum [lindex $::intList $i] } } proc sum3 {intList} { set sum 0 foreach int $intList {incr sum $int} } proc sum4 {intList} { set sum 0 for {set i 0} {$i < 50000} {incr i} { incr sum [lindex $intList $i] } } catch {console show} # --- load the initial list with values set intList [list] for {set i 0} {$i < 50000} {incr i} { lappend intList $i } # --- Now, time various methods of summing the data... puts "sum1 --> [time sum1 25]" puts "sum2 --> [time sum2 25]" puts "sum3 --> [time [list sum3 $intList] 25]" puts "sum4 --> [time [list sum4 $intList] 25]" Results... sum1 --> 11164 microseconds per iteration sum2 --> 36158 microseconds per iteration sum3 --> 15525 microseconds per iteration sum4 --> 21157 microseconds per iteration _____________________________________________ Metakit mailing list - [email protected] http://www.equi4.com/mailman/listinfo/metakit