import timeit def bench(stmt, msg=None, number=100000): if msg is None: msg = stmt best = min(timeit.repeat(stmt, number=number)) print("%.3g\t%s" % (best * 1e6 / number, msg)) bench('str(12345)') for s in ('', 'A', '\u0080', '\u0100', '\U00010000'): bench('%a.format(12345)' % (s + '{}',)) for s in ('', 'A', '\u0080', '\u0100', '\U00010000'): bench('%a.format(12345)' % (s + '{:-10}',)) for s in ('', 'A', '\u0080', '\u0100', '\U00010000'): bench('%a.format(12345)' % (s + '{:,}',))