[Python-ideas] Change magic strings to enums
Serhiy Storchaka
storchaka at gmail.com
Wed Apr 25 06:03:31 EDT 2018
25.04.18 10:57, Ivan Levkivskyi пише:
> On 25 April 2018 at 06:03, INADA Naoki
> <songofacandy at gmail.com
> <mailto:songofacandy at gmail.com>> wrote:
> enum class&member creation cost is much heavier than "import enum" cost.
> Especially, "import socket, ssl" is much slower than before...
>
> Is it slow simply because we are creating new class objects or
> EnumMeta.__new__ does
> some extensive calculations? In the latter case rewriting EnumMeta in C
> might help.
Creating a new function is very cheap -- just around 50 ns on my computer.
Creating a new class is over two orders costly -- around 7 us for an
empty class on my computer.
Creating a new Enum class is much more costly -- around 40 us for an
empty class (or 50 us for IntEnum) plus 7 us per member.
Creating a new namedtuple type has the same cost as creating Enum class.
It was much costly before 3.7.
Thus creating a typical Enum class with 3-5 members is like creating 10
normal classes. Not much modules have 10 classes.
More information about the Python-ideas
mailing list