Python built-in type performance analysis

Keywords: PHP Python

timeit module

The timeit module can be used to test the execution speed of a small piece of Python code.

class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)

Timer is a class that measures the execution speed of small pieces of code.

The stmt parameter is the statement to be tested;

The setup parameter is the setting needed to run the code;

The timer parameter is a timer function that is platform dependent.

timeit.Timer.timeit(number=1000000)

Object method to test the execution speed of statements in Timer class. The number parameter is the number of tests to test the code, which is 1000000 by default. Method returns the average time taken to execute the code, the number of seconds of a float type.

Operation test of list

def test1():
   l = []
   for i in range(1000):
      l = l + [i]
def test2():
   l = []
   for i in range(1000):
      l.append(i)
def test3():
   l = [i for i in range(1000)]
def test4():
   l = list(range(1000))

from timeit import Timer

t1 = Timer("test1()", "from __main__ import test1")
print("concat ",t1.timeit(number=1000), "seconds")
t2 = Timer("test2()", "from __main__ import test2")
print("append ",t2.timeit(number=1000), "seconds")
t3 = Timer("test3()", "from __main__ import test3")
print("comprehension ",t3.timeit(number=1000), "seconds")
t4 = Timer("test4()", "from __main__ import test4")
print("list range ",t4.timeit(number=1000), "seconds")

# ('concat ', 1.7890608310699463, 'seconds')
# ('append ', 0.13796091079711914, 'seconds')
# ('comprehension ', 0.05671119689941406, 'seconds')
# ('list range ', 0.014147043228149414, 'seconds')

pop operation test

x = range(2000000)
pop_zero = Timer("x.pop(0)","from __main__ import x")
print("pop_zero ",pop_zero.timeit(number=1000), "seconds")
x = range(2000000)
pop_end = Timer("x.pop()","from __main__ import x")
print("pop_end ",pop_end.timeit(number=1000), "seconds")

# ('pop_zero ', 1.9101738929748535, 'seconds')
# ('pop_end ', 0.00023603439331054688, 'seconds')

Test pop operation: as can be seen from the results, the efficiency of the last element of pop is much higher than that of the first element of pop

You can try append(value) and insert(0,value) of the list by yourself, that is, one after insert and one before insert???  

 

Time complexity of list built-in operations

Time complexity of the built-in operation of dict

Posted by fatalcure on Mon, 04 Nov 2019 06:51:41 -0800