Skip to main content

Command Palette

Search for a command to run...

2024년 6월 12일 작업일지

Published
2 min readView as Markdown
2024년 6월 12일 작업일지

SWC 파서 최적화

어제 했던 작업이랑 거의 비슷한 작업이다.

SWC Minifier 성능 Regression 수정

어제 한 작업이 지나치게 간단한 해결 방법을 써서 시간 복잡도가 O(n^2)가 됐다. 그걸 고치는 PR이다.

SWC CI Regression 수정

CI가 CLI 바이너리 파일을 GitHub Releases에 올리지 않는 문제가 있어서 한 작업이다.

swc_core 업데이트

파서 성능 개선 PR들을 빨리 적용할 필요성이 있어서 빠르게 업데이트 PR 만들었다.

터보팩 Tree Shaking 최적화

[crates/turbopack-ecmascript/src/tree_shake/graph.rs:248:13] ix = 4 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:263:13] &required_vars = { ( "x",

#2, ), } [crates/turbopack-ecmascript/src/tree_shake/graph.rs:266:17] id = ItemId(1, Normal) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:350:25] "Exporting" = "Exporting" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:350:25] var = ( "x",

#2, )

x = 3의 로그는 아래와 같다.

[crates/turbopack-ecmascript/src/tree_shake/graph.rs:248:13] ix = 5 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:263:13] &required_vars = { ( "x",

#2, ), } [crates/turbopack-ecmascript/src/tree_shake/graph.rs:266:17] id = ItemId(2, Normal) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:350:25] "Exporting" = "Exporting" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:350:25] var = ( "x",

#2, )

마찬가지로 var_decl에 대한 의존성이 없다. last read에만 의존성을 추가해서 그런 것 같다.

  • x +=6의 의존성에 last_write만 있어야하는데 이전의 모든 write가 있음.

    [crates/turbopack-ecmascript/src/tree_shake/graph.rs:248:13] ix = 8 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:263:13] &required_vars = { ( "x", #2, ), } [crates/turbopack-ecmascript/src/tree_shake/graph.rs:266:17] id = ItemId(5, Normal) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:297:17] dep = 3 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:307:29] "Importing" = "Importing" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:307:29] var = ( "x", #2, ) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] "Skipping" = "Skipping" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] var = ( "x", #2, ) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:297:17] dep = 4 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] "Skipping" = "Skipping" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] var = ( "x", #2, ) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:297:17] dep = 5 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] "Skipping" = "Skipping" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] var = ( "x", #2, ) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:297:17] dep = 6 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] "Skipping" = "Skipping" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] var = ( "x", #2, ) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:297:17] dep = 7 [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] "Skipping" = "Skipping" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:315:29] var = ( "x", #2, ) [crates/turbopack-ecmascript/src/tree_shake/graph.rs:349:25] "Exporting" = "Exporting" [crates/turbopack-ecmascript/src/tree_shake/graph.rs:349:25] var = ( "x", #2, )

  • 변수를 선언하지 않는 모듈이 변수를 export 함

어찌어찌 조금씩 진행했다.

SWC: no-dupe-args 린트 최적화

린트 패스지만 메모리 할당이 프로파일링 결과에서 눈에 띌 정도였어서 에러가 없는 경우 아예 메모리 할당을 하지 않게 패치했다.

SWC: xtask npm nightly 버그 수정

SWC 나이틀리가 제대로 배포가 안 되길래 수정했다.

More from this blog

Labor0를 만든 이유

사람이 병목이 되는 횟수를 줄이기 AI 에이전트 세션을 많이 실행하는 것 자체는 어렵지 않다. 내가 해결하고 싶었던 문제는 세션이 늘어날 때마다 사람이 모든 진행 상황을 확인하고 관리해야 한다는 점이었다. 사람을 병목에서 완전히 빼는 게 목표는 아니다. 사람은 여전히 병목이다. 대신 사람이 개입해야 하는 횟수를 줄이고, 실제로 결정이 필요한 순간에만 사람을

Aug 22, 20265 min read

작업 기록: 자동 QA 구성

최근에 Zephyr Cloud 의 프로젝트에 자동 QA 시스템을 구성했다. 그 작업 기록이다. 원래 이런 작업은 리눅스에서 하는 게 맞다고 생각했다. 그런데 나는 계속 로컬에서 디버깅해야 했고, 개발 흐름상 맥에서 바로 돌릴 수 있어야 했다. 예전에도 자동 QA를 시도한 적은 있었지만 끝까지 제대로 굴러간 적은 없었다. 그러다가 지난주 중반쯤, “이건 로

May 13, 20263 min read

kdy1: The way I think

305 posts