Community

tRPC가 느렸던건 사실이었고 해당 이슈는 수정된 것으로 보임

특히 버전 9에서 느리다는 의견이 많았음 https://github.com/trpc/trpc/discussions/2448 위의 이슈에서 버그 제보자는 약 40개 가량의 api 엔드포인트에서 속도저하 현상이 발생했다는 제보를 남겼음. 특히 useMutation과 관련하여 매우 느려졌다고 함. ​ 이 이슈는 버전10에서 해결된 것으로 보임 ​ ``` With 100+ endpoints, and a relatively complex tooling and code base, (nx monorepo), we don't have any performance issues anymore. I am using v10 ``` ​ 그러므로 tsc로 컴파일이 안된다던가 intellisense가 느린 이슈는 걱정하지 않아도 될것으로 보임 ​ 그런데 지금까지 왜 느렸을까? 아래 링크에서 힌트를 찾을 수 있음 https://gall.dcinside.com/mgallery/board/view/?id=github&no=49731 위의 댓글에서 samchon은 zod와 tRPC router에 TMP가 떡칠되어 있었기 때문에 느려진 것이라고 주장하였음. TMP란 Template metaprogramming의 줄임말로 본래 c++등의 타언어 커뮤니티에서 사용된 용어이고 타입스크립트 생태계에서 쓰이는 말은 아니다. 하지만 본질적으로 의미는 유사하다. 타입스크립트의 제네릭 타입을 이용하여 통상적인 방법으로는 불가능한 각종 타입추론을 구현하는 방법인데 이것에 대해서만 전문적으로 다루는 유튜브 채널이 있다 https://www.youtube.com/@MichiganTypeScript​ 가령 Subtract 타입은 뺄셈을 구현한 것인데 Subtract 의 타입은 0이 되고 Subtract의 타입은 1이 된다. 이런 매직은 주로 재귀함수를 통해서 구현된다. 상세는 https://www.youtube.com/watch?v=yWZqtsTVuug 참조 samchon이 주장하는 바는 이런식의 타입 레벨 프로그래밍이 TSServer 또는 tsc 컴파일러에 과부하를 주어서 IDE 인텔리센스의 추론속도를 느리게 만들거나 컴파일 에러를 유발한다는 것. 이 의견은 일리가 있는데 실제로 과거 zod 버전은 ts서버에 과도한 cpu사용을 유발하였음. 또다른 제보자는 인텔리센스에 무려 2초가 걸렸다고 함. 상세는 아래 참조 https://github.com/colinhacks/zod/issues/2142 이 버그는 현재 수정되었음 ​그 외에 과거 zod 버전에서 재귀 타입 이슈로 TSServer의 cpu 사용량이 과도한 이슈가 있었던 것으로 보임 (이 정보는 convex 메인테이너인 john에게 들었음) ​결론적으로 재귀 타입을 비롯한 타입 레벨 프로그래밍이 퍼포먼스 하락에 영향을 미쳤던 것으로 보임.

알림

알림이 없습니다