저는 최근에 C++과 Java에서도 "최상의"직렬화 프레임 워크를 찾으려고 일부 벤치 마크를 실행 해 왔습니다. 나를 위해 "최선"을 구성하는 요소는 직렬화 된 객체의 결과 크기와 입니다.직렬화 - C++과 Java의 차이점
Java의 다양한 프레임 워크 결과를 보면 결과 바이트 []가 일반적으로 메모리의 오브젝트 크기보다 작다는 것을 알 수 있습니다. Java 직렬화가 내장 된 경우에도 마찬가지입니다. 그런 다음 다른 제품 (protobuf 등)을 보면 크기가 훨씬 줄어 듭니다.
나는 C++ 크기 (boost, protobuf)의 것들을 보았을 때 결과 객체가 일반적으로 원래 객체보다 작지는 않지만 (어떤 경우에는 더 크다) 매우 놀랐다.
여기에 뭔가가 있습니까? C++이 아닌 Java에서 무료로 "압축"을 얻는 이유는 무엇입니까? 자바에있는 개체의 크기를 측정하는
n.b, 나는 http://docs.oracle.com/javase/6/docs/api/java/lang/instrument/Instrumentation.html
long getObjectSize (Object objectToSize) 지정된 객체가 사용하는 저장소 크기에 대한 구현 별 근사값을 반환합니다. 결과에는 객체의 오버 헤드의 일부 또는 전부가 포함될 수 있으므로 구현 내에서의 비교에는 유용하지만 구현 간의 비교에는 유용하지 않습니다. JVM을 한 번 호출하는 동안 예상치가 변경 될 수 있습니다. – user2384396