Bitshifts and "And" vs Floor-division and Modular

Mark Lawrence breamoreboy at yahoo.co.uk
Fri Sep 7 09:24:13 EDT 2012


On 07/09/2012 02:08, Cameron Simpson wrote:
> On 07Sep2012 01:30, Mark Lawrence <breamoreboy at yahoo.co.uk> wrote:
> | On 07/09/2012 01:01, jimbo1qaz wrote:
> | > Is it faster to use bitshifts or floor division? And which is better, & or %?
> | > All divisors and mods are power of 2, so are binary operations faster? And are they considered bad style?
> |
> | Why don't you use the timeit module and find out for yourself?
>
> Because timeit doesn't output style advice?
> Because timeit won't offer even a short single parapgraph description
> of how python ints (even just in CPython) are implemented and how that
> may affect performance in general?
>
> To the OP: personally, I would suggest using % when I am thinking of
> division and a bit shift when I am thinking of a bitshift, and only reach
> for timeit when performance becomes an issue. Code for the algoritm,
> and only optimise later.
>
> Of course only a well run benchmark will measure the real world, but it
> possible to address his other questions in a helpful fashion and address
> the benchmark question in a less offputting tone. If you can't be
> bothered, please don't. (Especially since these irritating posts from
> you are usually in response to a post you feel could have used more
> effort from the OP.)
>
> Nobody answers all performance considerations or design choices with an
> exhaustive timeit benchmark, and it is silly to suggest so. It is
> helpful for people to have a mental model of the python internals
> so they can make often-sensible choices from the start.
>
> So try being helpful instead of slapping people down when they haven't
> reached your private bar.
>
> Cheers,
>

I'm sorry but I refuse point blank to spoon feed, fit bibs and change 
nappies.  I wouldn't do that on the tutor mailing list and I certainly 
wouldn't do it here.  If any OP is too bone idle to do some research and 
then pose a sensible question relating to what they want to achieve, 
what they've done to achieve it and what issues they've got then I 
intend responding in the same way.  Clearly your approach is different 
so we'll have to agree to disagree.

-- 
Cheers.

Mark Lawrence.




More information about the Python-list mailing list