성능을 향상시키기위한 json.net 캐시 순서화 정보?
.NET에서 객체 직렬화는 일반적으로 런타임에 필드와 속성을 확인해야합니다. 반사는 특히 큰 물체의 수집 에서이 과정을 늦출 수 있습니다. 현대 라이브러리는 일반적으로 IL 방출 또는 발현 트리를 사용하여 성능을 향상 시키지만이 생성을 캐싱하여 생성 된 정보는 최상의 효율성에 필수적입니다.
JSON.NET에 대해 <..> 주요 질문은 어떤 직렬화 방법과 캐시가 사용되는지 여부입니다. 예를 들어, JSON.NET은 FOO 객체 캐시 멤버에 대한 정보에 액세스하고 향후 직렬화시 재사용됩니까?
답변 : 예, 정말 캐시되었습니다.
json.net은 클래스를 캐시 유형 직렬화 된 정보를 사용합니다. 기본 계약 파서 ()는 사용자 정의 계약 파서가 정의되지 않는 한이 정보를 유지하고 내부적으로 재사용합니다.
전역 정적 인스턴스가 있으며
는 모든 인스턴스간에 공유되는 정적 테이블을 유지합니다.
이 두 계약 파서는 안전한 스레드이며 크로스 스레드 공유를 허용합니다. 그러나 자신의 계약 파서를 작성하는 경우 캐시를 캐시 할 때만 캐시가 발생하여 계약 파서 인스턴스 자체를 재사용 할 수 있습니다.
메모리 사용이 없을 때 의 로컬 인스턴스를 구축하여 캐시 계약을 줄이고 직렬화 직후 직렬화를 사용하고 참조를 제거 할 수 있습니다.
결국 캐시 유형 직렬화 정보는 성능을 향상시킬 수 있지만 과도한 캐시는 메모리를 차지할 수 있습니다. 계약 파서를 신중하게 관리함으로써 성능과 메모리 소비 사이의 균형을 얻을 수 있습니다. 위 내용은 JSON.NET 캐시 직렬화 정보가 성능을 향상 시키나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!