Part4 - 5장. 프로그램 성능
비동기 패턴 덕분에 성능 좋은 코드를 작성할 수 있었다.
하지만 근본적으로 단일 이벤트 루프 스레드에 묶여있기 때문에 한계가 있다.
이러한 문제를 극복하기 위한 3가지를 알아보았다.
1. 웹 워커
- 비동기 이벤트를 이용하여 스레드 간에 메시지를 교환
- 자바스크립트 파일을 개별 스레드 단위로 실행
- 메인 UI 스레드의 응답성을 높임
- 자원을 많이 소모하거나 시간이 오래 걸리는 작업을 다른 스레드로 분산 가능
2. SIMD (Single Instruction, Multiple Data)
- CPU 수준의 병렬 수학 연산을 대량 데이터에 적용하는 기법
- 자바스크립트 API를 통해 병렬 데이터 연산 성능을 높임
- 고성능 그래픽/게임/영상 처리 등에 적합
3. asm.js
- GC(가비지 컬렉션)나 강제 타입 변환 등 최적화가 어려운 영역을 피함
- 자바스크립트 엔진이 이런 부류의 코드를 자동 인식하도록 설계된 부분집합
- 결과적으로 공격적인 최적화를 유도할 수 있음