이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14559|회답: 0

[출처] Java kryo/protobuf/protostuff 직렬화 또는 JSON 성능 비교

[링크 복사]
게시됨 2019. 7. 15. 오후 9:16:23 | | |
Java 객체의 직렬화를 위해 JSON과 일반 직렬화 도구 사용의 시간 및 공간적 성능 차이를 테스트하고 싶습니다.

json은 fastjson을 선택합니다.

직렬화 도구는 Protostuff와 Kyro를 사용합니다. 왜 프로토부프를 사용하지 않나요? 수백 개의 기존 속성을 가진 자바 클래스에 대해 새로운 매칭 프로토 파일을 만드는 것은 다소 반인간적이라고 느낍니다. Protostuff는 Protobuf의 개선된 버전으로, Kyro처럼 Java 객체를 직렬화할 수 있게 해주며, Protobuf만큼 많은 중간 프로세스 없이 사용할 수 있습니다. Hession, 직렬화 기능이 포함된 Java 같은 다른 제품들은 Kryo나 Protobuf보다 성능이 훨씬 떨어진다고 하니, 무엇을 기대해야 할지 잘 모르겠습니다.

간단한 검사 후 격차가 꽤 명확하다는 것을 알게 되어 별도의 평가를 할 필요가 없다고 느꼈습니다. 로그에서 한 단락을 잘라서 보내면 모두가 느낄 수 있습니다.

cost time은 System.nanoTime(); 세 가지 모두 설정 없이 기본 구성입니다.
직렬화 후 공간 발자국은 프로토스토프보다 약간 낮고, 두 경우 모두 JSON보다 훨씬 큽니다. 이해하기 쉽습니다. 결국 json 문자열은 읽기 쉽고, 너무 강요하지 마세요.
직렬화와 비직렬화에 필요한 시간은 FastJSON 위의 Kyro보다 더 좋고, 차이는 매우 명확합니다.

결론적으로, 공간에 대한 매우 까다로운 요구가 없다면 Protostuff가 최선의 선택일 수 있습니다. Protostuff는 Kyro에 비해 추가적인 장점이 있는데, 자바 클래스가 직렬화 이후와 비직렬화 전(실제 비즈니스에서는 피할 수 없는 경우)에 필드를 추가하면 Kyro는 쓸모가 없습니다. 하지만 protostuff는 수업 끝에 추가되고 Sun 시리즈 JDK를 사용하는 한 사용할 수 있습니다. 따라서 캐시와 같은 상황에서 직렬화가 사용되고 직렬화된 객체를 오랜 시간 저장해야 한다면, 프로토스택만 선택할 수 있습니다.

물론 가독성 같은 게 필요하다면 json만 사용할 수 있습니다.




이전의:asp.net 세션 ID 이름을 커스터마이즈하기
다음:.NET 플랫폼에서의 Protobuf와 JSON 성능 비교
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com