insertion_sort와 insert_value를 프로파일링하려면 먼저 난수 데이터 집합을 만들고 프로파일러에 넘길 test 함수를 정의한다(아이템 39 “글루 함수로는 lambda 식보다 functools.partial을 사용하라”에서 lambda의 배경 지식을 볼 수 있다).
from random import randint
max_size = 12**4
data = [randint(0, max_size) for _ in range(max_size)]
test = lambda: insertion_sort(data)
파이썬에는 내장 프로파일러가 두 가지 있다. 하나는 순수하게 파이썬으로 작성됐고(profile), 다른 하나는 C 확장 모듈로 되어 있는데(cProfile), cProfile 내장 모듈이 더 낫다. 프로파일 대상 프로그램의 성능에 최소로 영향을 끼치기 때문이다. 순수 파이썬 버전은 부가비용이 너무 많이 들어서 결과가 왜곡될 수 있다.