percent faster than format()? (was: Re: optomizations)
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Tue Apr 23 10:36:36 EDT 2013
On Tue, 23 Apr 2013 09:46:53 +0200, Ulrich Eckhardt wrote:
> Am 23.04.2013 06:00, schrieb Steven D'Aprano:
>> If it comes down to micro-optimizations to shave a few microseconds
>> off, consider using string % formatting rather than the format method.
>
> Why? I don't see any obvious difference between the two...
Possibly the state of the art has changed since then, but some years ago
% formatting was slightly faster than the format method. Let's try it and
see:
# Using Python 3.3.
py> from timeit import Timer
py> setup = "a = 'spam'; b = 'ham'; c = 'eggs'"
py> t1 = Timer("'%s, %s and %s for breakfast' % (a, b, c)", setup)
py> t2 = Timer("'{}, {} and {} for breakfast'.format(a, b, c)", setup)
py> print(min(t1.repeat()))
0.8319804421626031
py> print(min(t2.repeat()))
1.2395259491167963
Looks like the format method is about 50% slower.
--
Steven
More information about the Python-list
mailing list