question on string object handling in Python 2.7.8

Dave Tian dave.jing.tian at gmail.com
Tue Dec 23 20:28:30 EST 2014


Hi,

There are 2 statements:
A: a = ‘h’
B: b = ‘hh’

According to me understanding, A should be faster as characters would shortcut this 1-byte string ‘h’ without malloc; B should be slower than A as characters does not work for 2-byte string ‘hh’, which triggers the malloc. However, when I put A/B into a big loop and try to measure the performance using cProfile, B seems always faster than A.
Testing code:
for i in range(0, 100000000):
	a = ‘h’ #or b = ‘hh’
Testing cmd: python -m cProfile test.py

So what is wrong here? B has one more malloc than A but is faster than B?

Thanks,
Dave





More information about the Python-list mailing list