I made 1,000x faster TypeScript Validator Library - DEV Community ++++
처음에 ZOD 보다 성능 최대 천 배 빠른걸로 나올때
뭔가 잘못됐나 생각해서 벤치마크 프로그램 한참 다시 살펴봤는데
그런거 없고 레알 천 배 빠른거 맞았음 ㅇㅇ
성능 빠른게 뭐 별건가 싶은데, 극적으로 차이나니까 기분 좋노 ^오^
I made 1,000x faster TypeScript Validator Library - DEV Community ++++
처음에 ZOD 보다 성능 최대 천 배 빠른걸로 나올때
뭔가 잘못됐나 생각해서 벤치마크 프로그램 한참 다시 살펴봤는데
그런거 없고 레알 천 배 빠른거 맞았음 ㅇㅇ
성능 빠른게 뭐 별건가 싶은데, 극적으로 차이나니까 기분 좋노 ^오^
뭐 때문에 성능차가 저리 크게 나는거죠?
타입 체킹에 쓰이는 보편 알고리즘을 런타임 코드에 넣은게 아니라, 컴파일 코드에 넣어버림. 그래서 런타임에는 딱 대상 타입 T를 검증할 최소한의 코드만 넣어서, 코드 크기도 압도적으로 작고, 실행 속도도 훨씬 빠름
쓰레기같은 자바스크립트라서그렇지 강타입언어들은 이럴필요없다
그런데 자바는 왜?
Top comments (0)
이새끼 스타구걸충이잖음 스타구걸할때만 깃갤 기어들어와서 주작좀 그만했으면
응, 한쿡 커뮤에서 스타 받아봐야 레딧의 1/100도 안 나옴
뭐래 ㄹㅇ 지리는거만들었구만
근데 타입 체킹을 런타임에 안하고 컴파일 타임에 해도 sound함? false negative가 없다는게 보장되는지 좀 궁금하네 만약 보장된다면 왜 경쟁작들은 지금까지 런타임에 한건지도 좀 의문이고
타입 체킹 로직을 컴파일 타임에 심는거지, 타입 체킹은 당연히 런타임에 이루어짐
validate -> MyClass에 대한 전용 체킹 로직이 심어짐
이분 ㄹㅇ 깃갤에서 유일하게 존경하는 분. 유튜브 인터뷰영상 진짜재밌게 잘봤습니다 존경합니다 센세
고수
궁금한게 있는데, ttypescript? transformer 를 사용하던데 이래도 ide가 잘 작동함? - dc App
tsc는 아직 플러그인 지원이 안되는 걸로 아는데 - dc App
제네릭 변형하는 방식으루 해놔서, ide에 영향 안 줌
transformer 를 이용해 custom operator 를 구현하는건 가능할거같음? 예를들어 const tuple 을 # 로 사용하는 proposal 이 지금 RFC 에 있는데, IDE를 고장내지 않으면서 이 기능을 미리 사용하기 위해? transformer 작성? - dc App
아니면 다른 언어의 기능을 끌어온다던가. - dc App
AssemblyScript라고 타입스크립트 트랜스포머 사용해서 아예 어셈블리로 컴파일 해주는 플젝 있는데, 가기에 inline 등 아예 다른 지시어들 있긴 함
기존 코드가 노드랑 프레임워크에 의존성이 있어서 assemblyScript 는 못쓸거 같음. WASM도 한번 알아봤는데 이건 너무 불편할거 같고 - dc App
나도 원리는 잘 모르겠는데, 암모튼 그게 ide에서도 되대?
vscode 가 ttsc 를 컴파일러로 사용하도록 하는 옵션이 있길래, 이거랑 transformer들 잘 조합하면 되지않을까 싶어서 그럼 - dc App
회사 중에 닷넷 기능 끌어와서 ts에 쓰더란 카더라는 들어봄. 나중에 플젝하게 되면 깃헙 주소 좀 알려주셈
ㅇㅋㅇㅋ - dc App
컴파일이 더 오래 걸린다 정도가 tradeoff임? 그밖에 다른 문제는 없나???
바벨이나 순수 JS 환경 등에서 몬 씀
타입스크립트제이슨이 모얌?
내가 js를 잘 몰라서 그러는데 타입체킹이 런타임에 이루어지는건 똑같으니 성능 차이는 별로 없는게 아냐?? 코드는 줄어들었으니 페이지 최초 로딩시간이 짧아진건가 서버( 데이터 -> json생성(타입체킹) ) -> 클라 ( json(타입검증) -> 데이터 ) 이 로직임?? - dc App
https://www.reddit.com/r/javascript/comments/xyxn39/i_made_1000x_faster_typescript_validator_lbirary/
다른 분이 나 대신 근사하게 설명해놓으신게 있어서, 그거 참조 ㄱㄱ
그래프 그릴 때 빠른 거를 더 작게 보여주면 좋지 않을까용 실행시간을 기준으로 삼는다던가
첨에 글케 했다가 너무 격차가 커서 tson이 바닥에 있으니 안 보이더라고
본문 grammarly 좀 돌리셈 레딧에 프로모션 좀 잘 해보라는 댓글도 있고 맞춤법 검사기만으론 부족하다고 나오네
ㅠㅠ
저 정도 차이면 그래프 로그 스케일로 그리는게 나을듯
굳
지구에너지 절약 쌉가능
이거먼데 일단 저장 - dc App
타입스크립트에서 AOT를 ㅐㅎ버리네..
오 형님 dev.to도 하시나요 구독하겠습니다
삼촌추