Skip to main content

Command Palette

Search for a command to run...

2024년 6월 4일 작업일지

Published
1 min readView as Markdown
D
I created SWC, an open-source compiler project, and previously worked at Deno and Vercel. These days, I spend a lot of time building Labor0, along with Watchtower and The AI Platform at Zephyr Cloud IO.

터보팩 RcStr 최적화

열심히 작업해서 리뷰 요청했다.

SWC ES 파서 feature

SWC 파서가 elk.js 파싱할 때 60GB의 메모리를 할당한다는 얘기를 듣고 디버깅을 해봤다. 근데 재현이 안 됐다.

9.64GB도 충분히 많이 쓰는 것이라서 콜 스택을 봤더니, 내가 프로파일링 할 때 SWC의 테스팅 시스템을 이용해서 그렇게 나오는 것이었다.

테스팅 시스템을 없앤 뒤 프로파일링하자 256.10MiB를 사용했고, 여전히 마음에 들지 않아서 콜스택을 한번 더 읽어봤다.

criterion256MiB를 쓰고 있었고, 파서가 쓰는 메모리는 0.10MiB였다. 근데 팀원들이 프로파일링한 방식을 보니까 swc_ecma_parser/debug라는 cargo feature을 활성화한 것 같았는데 저 기능은 파서 자체를 디버깅하기 위한 기능이라서 로그를 엄청나게 추가한다. 그게 60GB의 원인인 것 같아서 빠르게 고치고 next.js와 터보팩에도 PR을 보냈다.

회의

위의 이슈와 관련해서 팀 회의에 참여했다.

More from this blog