기타 Lobsters · 2026-10-13

"더 빠르고 가벼워졌다" 오픈소스 curl, 메모리 40% 다이어트 성공

핵심 요약
  • curl 개발팀이 새로운 성능 테스트 도입 두 달 만에 주요 내부 기능의 속도와 메모리 사용량을 크게 개선했습니다.
  • Base64·URL·날짜 파싱 속도가 최대 2~4배 빨라졌고 주요 내부 구조체 크기가 약 40% 줄어들었습니다.
  • 해당 최적화 내용은 10월 14일 배포되는 curl 8.23.0 버전에 전면 적용됩니다.
요약 오픈소스 네트워크 전송 도구인 curl의 개발자 다니엘 스텐베르그(Daniel Stenberg)가 블로그를 통해 10월 14일 공개될 curl 8.23.0 버전의 성능 및 메모리 최적화 성과를 정리해 공개했습니다. 지난 8월 새로운 성능 테스트 환경을 구축한 개발팀은 약 2개월 동안 지속적인 벤치마크 데이터를 확인하며 다방면의 내부 로직을 개선했습니다. 일반적인 파일 전송에서는 사용자가 직접적인 차이를 크게 체감하기 어려울 수 있으나, 모든 영역에서 불필요한 지연을 없애는 최적화가 이뤄졌습니다. 주요 개선 사항으로는 내부 인코딩 및 파싱 속도 대폭 향상이 꼽힙니다. Base64 인코딩 속도는 2배 이상 빨라졌고 디코딩은 40% 향상되었습니다. URL 인코딩은 약 4배, 디코딩은 2배 이상 빨라졌으며, 쿠키 헤더 등에 쓰이는 날짜 문자열 파싱도 요일·월·시간대 조회 함수를 전면 교체해 속도가 2배 이상 향상되었습니다. 또한 수백 개 URL을 검증 및 분할하는 URL 파싱 속도는 20~30% 빨라지며 오류 식별 능력도 개선됐고, 64비트 숫자 파싱은 루프 내 경계 검사를 우회하는 기법을 적용해 2배 가까이 빨라졌습니다. 이 외에도 바이트 단위 대신 청크 단위 처리를 도입해 자체 printf() 호출 속도가 5~15% 개선됐습니다. 내부 구조체 및 메모리 사용량도 크게 다이어트되었습니다. 동시 전송마다 할당되는 easy handle 구조체는 기존 4,256바이트에서 3,064바이트로 약 40% 줄어들었고, multi handle과 connectdata 구조체 역시 각각 656바이트로 줄어 약 37~40% 축소되었습니다. 그 결과 512MB 파일 HTTP 다운로드 시 피크 메모리 할당량이 130,622바이트에서 126,875바이트로 감소했으며, 고정 다운로드 버퍼(102,400바이트)를 제외하면 실제 메모리 사용량이 약 15% 줄어들었습니다. 현재 관련 테스트는 누구나 git 저장소에서 직접 실행해 확인할 수 있습니다.
Sponsored · 광고