SPUG: hashes, arrays, map, join
John Cokos
jcokos at iwebsys.com
Sat Mar 10 00:44:10 CST 2001
And the winner is ....
(the numbers in front, are timestamps....)
984205861: Starting Program
984205861: Starting Test 1, reading 32,000+ rows from mySQL, Query
984205872: Query Finished, Building Sorted Array from query results
984205873: Done ... 1151 sorted, and ready
Array Element 0: 0
Array Element 1: 892745342
Array Element 2: 892843995
Array Element 3: 893066815
Array Element 4: 893066933
Array Element 5: 893075888
Array Element 6: 893090421
Array Element 7: 893092009
Array Element 8: 893094274
Array Element 9: 893097182
Array Element 10: 893101655
984205930: Starting Program
984205930: Starting Test 2, Converting 32,000 key comma list into hash via: %ids = map { split(/:/) } split(/,/,$string);
984205983: Done ... 1151 sorted, and ready
Array Element 0: 0
Array Element 1: 892745342
Array Element 2: 892843995
Array Element 3: 893066815
Array Element 4: 893066933
Array Element 5: 893075888
Array Element 6: 893090421
Array Element 7: 893092009
Array Element 8: 893094274
Array Element 9: 893097182
Array Element 10: 893101655
984206039: Starting Program
984206039: Starting Test 3, Converting 32,000 key comma list into hash via: %ids = split /[,:]/, $string;
984206046: Done ... 1151 sorted, and ready
Array Element 0: 0
Array Element 1: 892745342
Array Element 2: 892843995
Array Element 3: 893066815
Array Element 4: 893066933
Array Element 5: 893075888
Array Element 6: 893090421
Array Element 7: 893092009
Array Element 8: 893094274
Array Element 9: 893097182
Array Element 10: 893101655
984206168: Starting Program
984206168: Starting Test 4, Converting 32,000 key comma list into hash via: %ids = $string =~ /(?:^|,)(d+):(d+)(?=,|$)/g;
984206177: Done ... 1151 sorted, and ready
Array Element 0: 0
Array Element 1: 892745342
Array Element 2: 892843995
Array Element 3: 893066815
Array Element 4: 893066933
Array Element 5: 893075888
Array Element 6: 893090421
Array Element 7: 893092009
Array Element 8: 893094274
Array Element 9: 893097182
Array Element 10: 893101655
Using SQL as a benchmark, I tested the alternative methods, you
can see the timing results above (geez, "map" is slow, isn't it ???)
Looks like I can get a sorted array faster WITHOUT mySQL, too.
John
----- Original Message -----
From: John Cokos <jcokos at iwebsys.com>
To: <spug-list at pm.org>
Cc: <jcokos at ccs.net>
Sent: Friday, March 09, 2001 9:07 PM
Subject: Re: SPUG: hashes, arrays, map, join
> To summarize .....
>
> It seems that these are the options presented by you all:
>
> Alternatives to the use of map in populating the has to start with:
> %ids = split /[,:]/, $results;
> %ids = $results =~ /(?:^|,)(\d+):(\d+)(?=,|$)/g;
>
> To recreate the hash afterwards:
> These appear the same, but just for grins, I'll try them separately.
> join (',', map {"$_:$ids{$_}"} keys %ids);
> join ',', map "$_:$ids{$_}", keys %ids;
>
> ** Thanks for these ... this was the focus of my mental block to day
> Looking at it here, I can't believe I didn't "get it" earlier, I
> tried,literally
> every combination of things but THIS one **
>
>
> Anyway, I'm loading the DMOZ Data right now, into mySQL, so I'll have
> a good 30 to 40 million indexed words to monkey with. I'll report back
> some time trials on each of these methods.
>
> John
>
>
>
> ----- Original Message -----
> From: Andrew Sweger <andy at n2h2.com>
> To: Alex Leites <Alex.Leites at esca.com>
> Cc: John Cokos, CEO, iWeb, Inc. <jcokos at iwebsys.com>; <spug-list at pm.org>
> Sent: Friday, March 09, 2001 5:38 PM
> Subject: RE: SPUG: hashes, arrays, map, join
>
>
> > %ids = $results =~ /(?:^|,)(\d+):(\d+)(?=,|$)/g;
> >
> > is more evil. :)
> >
> > On Mar 9, 2001 @ 5:31pm, Alex Leites wrote:
> >
> > > One more thing:
> > >
> > > %ids = split /[,:]/, $results;
> > >
> > > is probably more efficient.
> >
> > --
> > Andrew B. Sweger <andy at n2h2.com> | N2H2, Incorporated
> > Manager, ICE Development Dept | 900 Fourth Avenue, Suite 3400
> > Content Management Division | Seattle WA 98164-1059
> > v=206.336.2947 f=206.493.0906 | http://www.n2h2.com/
> >
> >
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> > POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
> > Subscriptions; Email to majordomo at pm.org: ACTION LIST EMAIL
> > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
> > For daily traffic, use spug-list for LIST ; for weekly, spug-list-digest
> > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
> >
> >
>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Subscriptions; Email to majordomo at pm.org: ACTION LIST EMAIL
Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
For daily traffic, use spug-list for LIST ; for weekly, spug-list-digest
Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
More information about the spug-list
mailing list