in reply to Re: Symbolic refs aka. dynamic variables again
in thread Symbolic refs aka. dynamic variables again

Nah - your results are way too close. On slower hardware lexicals are clearly fastest, globals come in second and symbolic refs in last place. This is all easily explained in terms of involved opnodes. Symbolic refs add a handful of nodes, and globals are one opnode heavier than lexicals.

Benchmark: running use_global_hash, use_global_vars, use_lexical_hash, + each for at least 10 CPU seconds... use_global_hash: 11 wallclock secs (10.45 usr + 0.00 sys = 10.45 CPU) + @ 112.63/s (n=1177) use_global_vars: 11 wallclock secs (10.55 usr + 0.00 sys = 10.55 CPU) + @ 83.32/s (n=879) use_lexical_hash: 11 wallclock secs (10.48 usr + 0.00 sys = 10.48 CPU +) @ 120.71/s (n=1265) Rate use_global_vars use_global_hash use_lexical_ +hash use_global_vars 83.3/s -- -26% +-31% use_global_hash 113/s 35% -- + -7% use_lexical_hash 121/s 45% 7% + --