
다니엘 르미르(Daniel Lemire)가 파이썬용 Base64 라이브러리 fastpybase64를 공개했다. 그의 단일 스레드 벤치마크에서는 1MiB 데이터를 초당 13.1GB로 디코딩해, 표준 라이브러리보다 27배 빠른 결과를 냈다.
fastpybase64는 simdutf의 SIMD 기반 디코딩 기능을 파이썬에서 쓸 수 있도록 만든 라이브러리로, 표준 base64 모듈을 대체하는 용도로 설계됐다. 설치 명령은 pip install fastpybase64다. Linux, macOS, Windows에서 사용할 수 있고, Python 3.10~3.14를 지원한다. free-threaded Python 3.14도 포함된다.
르미르는 Intel Xeon Gold 6548N(Emerald Rapids)의 코어 하나에 작업을 고정하고 Python 3.14.6을 사용해 측정했다. PyPI에서 fastpybase64 0.1.0과 pybase64 1.5.1을 설치했으며, 임의의 바이트 데이터를 Base64로 인코딩한 뒤 디코딩했다. 이메일 첨부에 쓰이는 MIME 형식처럼 Base64 문자열을 76자마다 줄바꿈한 데이터가 측정 대상이다. 수치는 디코딩된 데이터 기준 초당 기가바이트다.
| 데이터 크기 | 표준 base64 | pybase64 | fastpybase64 |
|---|---|---|---|
| 1 KiB | 0.44 | 1.5 | 4.4 |
| 64 KiB | 0.49 | 3.1 | 13.3 |
| 1 MiB | 0.49 | 3.2 | 13.1 |
이 벤치마크에서 fastpybase64는 pybase64보다 4배, 표준 라이브러리보다 27배 빠르다고 르미르는 설명했다. 측정 조건과 코드는 벤치마크 저장소에서 확인할 수 있다. 패키지는 PyPI에서 제공된다. 르미르의 원문에는 SIMD 기반 Base64 연구 자료도 연결돼 있다.
부록: 원문 예시
import fastpybase64 as base64 base64.b64encode(b"hello") # b'aGVsbG8=' base64.b64decode("aGVsbG8=") # b'hello'
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요