▲GN⁺ 2023-11-06 | parent | ★ favorite | on: 고성능 JSON 파서 구축(dave.cheney.net)Hacker News 의견 고성능 JSON 파서 구축에 대한 상세 가이드 제공하는 기사 저자는 JSON에 대해 명시적 토큰화가 필요하지 않으며, 파싱과 토큰화를 통합할 수 있다고 제안 더 나은 성능을 위해 토큰화와 파싱에서 힙 할당을 피하는 것을 저자가 권장 JSON 라이브러리의 선택은 성능에 큰 영향을 미칠 수 있으며, 최대 3-10배의 차이가 날 수 있음 직렬화 또는 역직렬화할 클래스가 컴파일 시간에 알려져 있다면, Jackson Java가 잘 작동하지만, 신중한 코딩과 프로파일링은 성능을 2배 향상시킬 수 있음을 기사에서 제안 고성능 생산 환경에 대해, 저자는 Daniel Lemire의 작업이나 그것을 Go로 이식한 MinIO를 살펴보는 것을 권장 저자는 또한 RapidJSON에서의 JSON 벤치마크 페이지를 언급 토큰화에서 "쓰레기 공장" 문제에 대한 해결책을 논의하며, 이는 문자열 대신 byteslice에서 T로의 함수를 사용하는 것을 포함 메모리 할당이 없고 매우 빠른 GraphQL 토큰화기와 파서를 구축하는 데 사용된 유사한 접근법을 저자가 언급 저자는 계산된 goto라는 더 공간 효율적인 기법을 논의 표준 라이브러리를 더 나은 API 디자인으로 개선할 수 있다고 저자가 제안하지만, 오류를 찾기 전에 구조를 반만 채우는 완전히 스트리밍 파서는 비현실적임 대부분의 애플리케이션에서 전체 입력을 메모리에 가지고 있을 것으로 기대하는 것이 비현실적이라는 개념에 저자가 동의하지 않음 기사는 Phil Pearl에게 감사의 인사를 전하며, GitHub의 Sonic 라이브러리를 살펴보는 것을 권장
Hacker News 의견