Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re^2: Efficient bit-twiddling in Perl.

by BrowserUk (Pope)
on Mar 01, 2013 at 13:39 UTC ( #1021263=note: print w/replies, xml ) Need Help??

in reply to Re: Efficient bit-twiddling in Perl.
in thread Efficient bit-twiddling in Perl.

I fed your JustShift solution (a cute bit of lateral thinking :), into my benchmark and on my hardware it is a tad slower than shift&and:

C:\test>1021064 Shift&and took: 0.000000611130 seconds justshift took: 0.000000651048 seconds Lookup took: 0.000000488745 seconds Lookup2 took: 0.000000706896 seconds (un)pack took: 0.000007464467 seconds

I was a bit surprised by that as both shift & and are designated as single clock operations on my cpu. I guess the difference is in the perl operations that overlay them.

I follow your drift regarding the effect that assignment and stack handling can have on a benchmark of this nature; but the values are re-used several times through the rest of the body of the inner loop, so the assignment is a constant factor that I've chosen to exclude.

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1021263]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2018-06-23 03:13 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (125 votes). Check out past polls.