Posted to tcl by dgp at Tue Apr 14 01:08:49 GMT 2015view pretty

# demo.tcl
# Call as: tclsh demo.tcl $length $copies $iters
lassign $argv length copies iters
proc demo {length copies} {
   set original [lrepeat $length {}]
   while {[incr copies -1]} {
      set original [lmap _ $original {list {}}]
   }
}
while {[incr iters -1]} {
    puts [time {demo $length $copies}]
}

$ tclsh demo.tcl 15000 2000 20
8446289 microseconds per iteration
8868345 microseconds per iteration
9306034 microseconds per iteration
9652503 microseconds per iteration
9806725 microseconds per iteration
10278710 microseconds per iteration
10505866 microseconds per iteration
10445097 microseconds per iteration
10459832 microseconds per iteration
10728345 microseconds per iteration
10652620 microseconds per iteration
10841165 microseconds per iteration
11051241 microseconds per iteration
10927274 microseconds per iteration
10999697 microseconds per iteration
11185095 microseconds per iteration
11098905 microseconds per iteration
11152347 microseconds per iteration
11287992 microseconds per iteration