[openstack-dev] [all][python3] use of six.iteritems()
Nikhil Komawar
nik.komawar at gmail.com
Thu Jun 11 19:53:12 UTC 2015
On 6/11/15 2:45 PM, John Dennis wrote:
> On 06/11/2015 01:46 PM, Mike Bayer wrote:
>> I am firmly in the "let's use items()" camp. A 100 ms difference for
>> a totally not-real-world case of a dictionary 1M items in size is no
>> kind of rationale for the Openstack project - if someone has a
>> dictionary that's 1M objects in size, or even 100K, that's a bug in
>> and of itself.
>>
>> the real benchmarks we should be using, if we are to even bother at
>> all (which we shouldn't), is to observe if items() vs. iteritems()
>> has *any* difference that is at all measurable in terms of the
>> overall execution of real-world openstack use cases. These
>> nano-differences in speed are immediately dwarfed by all those
>> operations surrounding them long before we even get to the level of
>> RPC overhead.
>
> Lessons learned in the trenches:
>
> * The best code is the simplest [1] and easiest to read.
>
> * Code is write-once, read-many; clarity is a vital part of the read-many.
>
+1
> * Do not optimize until functionality is complete.
>
+1
> * Optimize only after profiling real world use cases.
>
+2!
> * Prior assumptions about what needs optimization are almost always
> proven wrong by a profiler.
>
+2!
> * I/O latency vastly overwhelms most code optimization making obtuse
> optimization pointless and detrimental to long term robustness.
>
Couldn't agree more
> * The amount of optimization needed is usually minimal, restricted to
> just a few code locations and 80% of the speed increases occur in just
> the first few tweaks after analyzing profile data.
>
> [1] Compilers can optimize simple code best, simple code is easy to
> write and easier to read while at the same time giving the tool chain
> the best chance of turning your simple code into efficient code. (Not
> sure how much this applies to Python, but it's certainly true of other
> compiled languages.)
>
> John
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
--
Thanks,
Nikhil
More information about the OpenStack-dev
mailing list