개발/Javascript

[You don't know JS] Part4 - 5장. 프로그램 성능

lanace 2020. 10. 11. 22:43

비동기 패턴 덕분에 성능 좋은 코드를 작성할 수 있었다.

하지만 근본적으로 단일 이벤트 루프 스레드에 묶여있기 때문에 한계가 있다.

이러한 문제를 극복하기 위한 3가지를 알아보았다.

 

1. 웹 워커

비동기 이벤트를 이용하여 스레드간에 메시지를 교환하며 자바스크립트 파일을 개별 스레드 단위로 실행하게 해준다.

메인 UI 스레드의 응답성을 높이면서도 소요 시간이 길거나 자원을 집중적으로 소모하는 작업을 다른 스레드로 분산하는 장점을 가진다.

2. SIMD

CPU 수준의 병렬 수학 연산을 대량 데이터의 수치 연산 같은 고성능 병렬 데이터 연산에 특화된 JS API로 연결하는 기법이다.

3. asm.js

GC나 강제변환 등 최적화 하기 어려운 영역을 피해서 자바스크립트 엔진이 이런 부류의 코드를 자동으로 인식하여 공격적인 최적화를 하도록 유도하는 부분집합이다.