
curl 팀은 10월 14일 출시 예정인 curl 8.23.0에서 URL 인코딩과 디코딩, Base64 처리 등 여러 기능의 속도를 높이고 메모리 사용량을 줄였다고 밝혔다. 새 성능 테스트를 운영한 지 두 달 남짓 만에 이뤄진 개선으로, 팀은 대부분의 전송에서 사용자가 체감할 차이는 크지 않을 것이라고 설명했다.
Base64 인코딩은 두 배 넘게 빨라졌고 디코딩은 40% 빨라졌다. URL 인코딩은 약 네 배, 디코딩은 두 배 넘게 빨라졌다. 날짜 파싱은 두 배 넘게, 숫자 파싱은 거의 두 배 빨라졌다. 여러 URL을 대상으로 한 테스트에서는 URL 파싱 속도가 20~30% 향상됐으며, 유효하지 않은 URL의 문제를 더 정확히 알려주도록 개선됐다.
libcurl의 printf() 호출 대부분은 한 바이트씩 처리하는 대신 덩어리 단위로 처리해 5~15% 빨라졌다. 구조체 크기도 줄었다. 전송 하나마다 할당되는 easy handle은 4,256바이트에서 3,064바이트로, multi handle은 900바이트에서 656바이트로 줄었다. 연결마다 할당되는 connectdata는 824바이트에서 656바이트가 됐다.
일반 텍스트 HTTP로 512MB 파일 하나를 내려받는 테스트에서는 할당 횟수가 100회에서 96회로 감소했다. 최고 메모리 사용량은 130,622바이트에서 126,875바이트로 줄었다. 이 가운데 102,400바이트는 다운로드 버퍼다. 이를 제외하면 curl이 사용하는 메모리는 15% 줄었다.
curl 팀은 성능 테스트가 Git 저장소에 있어 누구나 실행해 개선 여부를 확인할 수 있다고 밝혔다. 앞서 소개한 curl 성능 테스트에 자세한 내용이 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요