반응형
얼마전 파이선 시장에서 흥미로운 얘기가 나왔다.
바로 파이선 3.11 버전의 출시였다.
기존까지 계속해서 출시가 되어왔는데 왜 이번에는 이렇게 주목을 받느냐.
그것은 바로 아래와 같은 이유들 때문이다.
Faster CPython
- 파이썬 3.11 버전은 이전 버전에 비해 (3.10) 전반적인 실행 속도가 10%~60% 정도, 평균적으로는 25% 정도 빨라졌다고 한다.
설명만으로는 와닿지 않으니 한번 테스트를 해 보면 아래와 같다.
import time def timer(function): def tictoc(*args, **kwargs): start = time.time() function(*args, **kwargs) print(f"Elapsed time: {(time.time() - start) * 1000} ms.") return tictoc @timer def append_list(n_iter): temp_list = [] for i in range(n_iter): temp_list.append(i) # On 3.10.0b3 >>> append_list(2500000) Elapsed time: 204.00071144104004 ms. # On 3.11.0a1 >>> append_list(2500000) Elapsed time: 160.99786758422852 ms. |
총 elapsed time 을 보면 확연한 차이를 볼수 있다.
빨라진 이유를 공식 홈페이지에서는 아래와 같은 이유로 설명을 한다.
- 프레임 생성 프로세스를 간소화
- C 스택의 프레임 공간을 넉넉하게 재사용하여 메모리 할당을 방지
- 필수 정보만 포함하도록 내부 프레임 구조를 간소화했습니다. 이전에 프레임에는 추가 디버깅 및 메모리 관리 정보
Exception Groups and except *
- 3.11 버전부터는 ExceptionGroup 이라는 빌트인 예외 타입이 추가되어, 여러 종류의 exception을 동시에 raise 하거나 handle 할 수 있게 되었다. 여러 동작을 동시에 실행시키거나, 여러 번의 실행 시도 후 에러 리포트를 해야 하는 등 많은 수의 서로 다른 예외를 한꺼번에 다루어야 하는 상황에 쓸 수 있는 도구이다.
Enriching Exceptions with Notes
- Exception을 catch 하고 다시 re-raise 하거나, ExceptionGroup에 추가하는 경우 해당 exception의 에러 트레이스백에 추가적인 정보를 더 담을 수 있도록 BaseException.add_note 메서드가 추가되었다.
Include Fine Grained Error Locations in Tracebacks
- 더욱 편리한 디버그를 위해 에러 발생 위치를 더 정확히 출력 해준다.
반응형
'IT > Python' 카테고리의 다른 글
파이선 리스트 중복 제거 (26) | 2022.12.13 |
---|---|
파일 복사 (40) | 2022.11.30 |
cx_Oracle 이란? (34) | 2022.11.12 |
read_csv() (38) | 2022.11.08 |
반복문 역순으로 돌기 (43) | 2022.10.28 |
댓글