JSON just got way better (yes really)
- Chrome V8 엔진의 JSON.stringify 성능이 3배 가까이 향상되었습니다. 🚀
- JSON.stringify 최적화는 웹 페이지의 상호 작용 속도와 앱 응답성을 향상시킵니다. ⚡
- V8은 side effect가 없는 JSON 직렬화를 위해 특화된 빠른 경로를 사용합니다. 🛤️
- side effect는 사용자 정의 코드 실행, 가비지 컬렉션 트리거 등을 포함합니다. ♻️
- 새로운 빠른 경로는 반복적이어서 스택 오버플로를 방지하고 더 깊은 객체 그래프 직렬화를 지원합니다. 🌲
- V8은 문자열을 1바이트 또는 2바이트 문자로 표현하며, 이에 따라 직렬화 방식을 최적화합니다. 🔣
- 문자열 내에 이모지가 있으면 2바이트 문자열로 처리되어 최적화 방식이 달라집니다. 🎭
- 긴 문자열의 경우 SIMD 명령어를 사용하여 JSON 직렬화 속도를 높입니다. 🏎️
- 짧은 문자열의 경우, 레지스터 내 SIMD(swar) 기술을 사용하여 오버헤드를 줄입니다. 💡
- V8 엔진은 약 160만 줄의 코드로 구성되어 있으며, JSON 최적화에 많은 노력이 투입되었습니다. 🤯
- V8 엔진의 번들 크기는 약 9MB이며, 주석, 테스트 코드 등을 포함하면 총 300만 줄에 달합니다. 📚