Posted to tcl by apn at Tue Dec 29 03:53:27 GMT 2015view pretty

% proc p {} {set ::p 10000000 ; while {$::p} {incr ::p -1}}
% p
% time p 
8134754 microseconds per iteration
% proc q {} {upvar #0 q q; set q 10000000; while {$q} {incr q -1}}
% time q
743594 microseconds per iteration
% proc p {} {set x $::p; set x $::p}
% proc q {} {upvar #0 p p; set x $p; set x $p}
% time p 1000000
2.033771 microseconds per iteration
% time q 1000000
1.622337 microseconds per iteration