추측 대신 실행 자료 보기
코드가 복잡해 보이는 부분과 실제로 시간이 많이 드는 부분은 다를 수 있다. 프로파일링은 실행 중 관찰한 자료로 어느 부분을 우선 조사할지 판단하게 돕는다. 실행하지 않는 경로의 비용까지 한 번에 알려 주는 것은 아니다.
계측과 표본 추출
함수 진입과 종료 등의 사건을 기록하는 방법과 일정 간격으로 실행 상태를 표본 추출하는 방법이 있다. 얻는 정보의 성격과 측정 부담이 서로 다를 수 있다. 어떤 방식으로 수집했는지에 따라 결과를 해석해야 한다.
자기 시간과 누적 시간
함수 자신의 작업에 쓴 시간과 그 함수가 호출한 작업까지 포함한 시간은 다르다. 누적 시간이 크다고 그 함수 본문의 연산만 바꾸면 해결된다고 단정할 수 없다. 호출 관계와 반복 횟수를 함께 살펴야 한다.
비교 조건을 맞추기
입력과 부하, 캐시 상태, 외부 서비스 응답 등이 바뀌면 결과도 달라질 수 있다. 개선 전후를 비교할 때 측정 조건을 맞추고 반복 관찰할 필요가 있다. 실제 시간 측정과 알고리즘의 점근적 복잡도 증명도 서로 다른 작업이다.