Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Using map to create a hash/bag from an array

by GrandFather (Saint)
on Dec 17, 2005 at 11:21 UTC ( [id://517467]=note: print w/replies, xml ) Need Help??


in reply to Using map to create a hash/bag from an array

Benchmarks are interesting:

use strict; use warnings; use Set::Scalar; use Benchmark qw(cmpthese); my @array = qw(a b c d e f g h i j k l m n o p q r s t u v w x y z); cmpthese (-1, { 'GF' => sub {my %hash; @hash{@array} = (1) x @array;}, 'map' => sub {my %hash = map {($_, 1)} @array;}, 'map++' => sub {my %hash; map {$hash{$_}++} @array;}, 'set' => sub {my $set = Set::Scalar->new(@array);}, } );

Prints:

Rate set map map++ GF set 2203/s -- -84% -91% -92% map 13740/s 524% -- -46% -49% map++ 25598/s 1062% 86% -- -6% GF 27113/s 1131% 97% 6% --

DWIM is Perl's answer to Gödel

Replies are listed 'Best First'.
Re^2: Using map to create a hash/bag from an array
by shotgunefx (Parson) on Dec 18, 2005 at 08:34 UTC
    Didn't they optimize map at some point so it doesn't actually creat a new array when in a null context? That would explain why map++ is so much faster than map.


    -Lee

    perl digital dash (in progress)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://517467]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2024-04-19 19:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found