On 07/17/2017 09:06 PM, David Mertz wrote:
On Jul 17, 2017 7:56 PM, "Ethan Furman" <et...@stoneleaf.us 
<mailto:et...@stoneleaf.us>> wrote:

    On 07/17/2017 06:34 PM, Steven D'Aprano wrote:

        On Mon, Jul 17, 2017 at 05:01:58PM -0700, Ethan Furman wrote:


            Guido has decreed that namedtuple shall be reimplemented with speed 
in mind.

            I haven't timed it (I'm hoping somebody will volunteer to be the 
bench mark
            guru), I'll offer my NamedTuple implementation from my aenum [1] 
library.


        With respect Ethan, if you're going to offer up NamedTuple as a faster
        version of namedtuple, you should at least do a quick proof of
        concept to demonstrate that it actually *is* faster.


    I suck at benchmarking, so thank you for providing those quick-and-dirty 
hints.


        Full bench marking
        can wait, but you should be able to do at least something like:


        python3 -m timeit --setup "from collections import namedtuple" \
              "K = namedtuple('K', 'a b c')"


    546 usec


        versus

        python3 -m timeit --setup "from aenum import NamedTuple" \
              "K = NamedTuple('K', 'a b c')"


    250 usec


    So it seems to be faster!  :)

Can you try across a range of tuple sizes? E.g. what about with 100 items? 1000?

I tried 26 and 52 (which really seems unlikely for a named tuple), and NamedTuple was consistently faster by about 250 usec. Using a metaclass is off the table, but this is still interesting data for me. :)

--
~Ethan~

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to