2009/4/16 Francesco Cosoleto <cosoleto(a)free.fr>
Nicolas Dumazet ha scritto:
A small note here: set is not really meant to be
used on incremental
.add(), because sets are frozen (not mutable), and add() instantiates
a new set on each .add() action. Sets are useful for set operations
(union, intersection), but are not really helpful when it comes to
incrementally construct them. When I need performance for such kind of
lookups, a simple dictionary is usually way faster than sets :) I
would suggest using a dictionary here :)
'set' is implemented as a 'dict', using add() method you just are adding
a new keyword, so using directly a 'dict' should be theorically faster.
Unfortunately, I cannot see this in a test I have executed (1,23%
slower). I'll try to run it again later. Maybe I miss something.
Yes, after Russell's message, I double-checked set.add vs dict.__setitem__
performance, and to my surprise, the runtime differences where not as
significant as I first thought. One important parameter however, seems to be
the length of the keys.
I am currently running more systematic tests, I will let you know the
results =)
--
Nicolas Dumazet — NicDumZ [ nɪk.d̪ymz ]