in reply to Re^2: strict "vars" mode for hash key literals?
in thread strict "vars" mode for hash key literals?
You understand perlguts far better than I, but there is a measurable penalty for interacting with a hash with locked keys:
yields#!/usr/bin/perl use strict; use warnings; use 5.10.0; use Hash::Util 'lock_keys'; use Benchmark 'cmpthese'; lock_keys my %hash1, qw/foo bar baz/; my %hash2; cmpthese(1e2, { 'lock' => sub { for (1 .. 1e5) {$hash1{foo}++;$hash1{bar}++;$ +hash1{baz}++;} }, 'no_lock' => sub { for (1 .. 1e5) {$hash2{foo}++;$hash2{bar}++;$ +hash2{baz}++;} }, });
Rate lock no_lock lock 61.6/s -- -8% no_lock 66.8/s 8% --
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: strict "vars" mode for hash key literals?
by AnomalousMonk (Archbishop) on Oct 18, 2016 at 18:47 UTC |