jupyter nbextensions의 Execute Time과 %% time과 time module의 차이
4918 단어 Jupyter-notebook파이썬Jupyter
소개
Jupyter의 확장 기능으로 jupyter nbextensions라는 패키지가 있습니다.
참고: [작업 효율화] Jupyter의 확장 기능을 전부 조사해 보았다
이 기능 안에 실행 시간을 계측하기 위한 기능 Execute Time이 있습니다만, 원래 jupyter notebook에서는 셀상에서
%%time
(혹은 %%timeit
)라고 치면 실행 시간을 계측할 수 있습니다.참고: Jupyter Notebook에서 셀 실행 시간을 차지한다면 %%time을 사용하자.
또한
time
module을 사용하여 처리 전후에 다음과 같이 실행 시간을 계측하는 고전적인 방법도 있습니다.import time
start = time.time()
// 計測したい処理
end = time.time()
print("time (ms):", (end - start) * (10 ** 3))
이번에는 이 3개의 계측 방법의 차이에 대해 소개합니다.
line_profiler와 같은 다른 측정 방법은 제외됩니다.
실수가 있으면 적절하게 수정하십시오.
실행 환경은 다음과 같습니다.
세 가지 측정 방법의 차이
결론부터 말씀드리면,
%%time
및 time
module에 의한 기법에서는 스크립트의 실행 시간 (ms)을 측정하고,Execute Time은 셀 실행 시간 (ms)을 측정합니다.
이것은 다음 스크립트에서 쉽게 나타낼 수 있습니다.
%%timeit -r 1 -n 5
t1= time.time()
n = 10000000
sum(range(n))
t2 = time.time()
print("time module (ms): ", (t2 - t1) * (10 ** 3))
1행째
%%timeit
에 익숙하지 않은 옵션이 붙어 있습니다만, 이것은 계측 오차를 고려해 복수회(이번은 5회) 측정하는 것을 지시하는 것입니다.이 스크립트를 한 셀에서 실행한 결과는 다음과 같습니다.
셀 직후의
executed in
에 이어지는 시간이 Execute Time에 의한 측정 시간,출력의
time module (ms):
이후가 time
module에 의한 계측 시간,출력의 마지막 행은
%timeit
에 의한 측정 시간을 나타냅니다.이 시점에서 Execute Time에 의한 측정 시간이 셀의 실행 시간을 나타내는 것을 알 수 있습니다.
또한
time
와 %%timeit
는 스크립트 실행 시간을 나타내는 것을 동시에 알 수 있습니다.셀 실행 시간
게다가 한 셀을 실행하는 데 얼마나 걸리는지 확인해 봅시다.
이것은 다음의 스크립트로
n
의 오더를 적절히 바꾸어 가면 왠지 보입니다.n = 10000000
sum(range(n))
n
를 10000000
에서 100
까지 차례로 줄여서 수행한 결과는 다음과 같습니다.결과와 같이
n
를 10000
에서 작게해도 셀의 실행 시간에 차이가 나타나지 않는 것을 확인할 수 있습니다.또한이 결과에서 셀 당 실행 시간은 4ms 정도라고 할 수 있습니다 (단, 환경 의존).
Jupyter를 사용하는 분이 이 시간에 신경이 쓰이는 분은 없다고는 생각합니다만, 마음에 두어 두면 좋을지도 모릅니다.
요약
%%time
는 스크립트 실행 시간 (ms)을 측정합니다 Reference
이 문제에 관하여(jupyter nbextensions의 Execute Time과 %% time과 time module의 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mocobt/items/d29ef18e6218646fce79텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)