%lprun 사용하기: 병목 지점 찾기
함수 프로파일링을 하면 함수 소스 코드를 더 깊이 살펴보고 잠재적인 병목 지점을 발견할 수 있어요. 특정 코드 줄이 함수 실행 시간의 대부분을 차지한다면, 더 효율적인 다른 기법을 사용하는 것이 좋다는 신호예요.
이제 convert_units() 함수를 더 자세히 살펴보겠습니다.
def convert_units(heroes, heights, weights):
new_hts = [ht * 0.39370 for ht in heights]
new_wts = [wt * 2.20462 for wt in weights]
hero_data = {}
for i,hero in enumerate(heroes):
hero_data[hero] = (new_hts[i], new_wts[i])
return hero_data
IPython 세션에 line_profiler 패키지를 로드하세요. 그런 다음 %lprun을 사용해 슈퍼히어로 데이터에 대해 convert_units() 함수를 프로파일링하세요. %lprun을 사용할 때의 특수 구문을 기억하세요(프로파일링할 함수를 지정하는 -f 플래그를 제공해야 합니다).
convert_units() 함수, heroes 리스트, hts 배열, wts 배열은 세션에 이미 로드되어 있어요. 코딩을 마친 후 다음 질문에 답하세요:
convert_units() 함수 전체 실행 시간 대비, new_hts 리스트 컴프리헨션 코드 줄에서 소비된 시간의 비율은 얼마인가요?
이 연습은 강의의 일부입니다
