Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 14559|Respuesta: 0

[Fuente] Serialización o comparación de rendimiento JSON en Java kryo/protobuf/protostuff

[Copiar enlace]
Publicado en 15/7/2019 21:16:23 | | |
Para la serialización de un objeto Java, me gustaría probar la diferencia entre usar JSON y usar herramientas generales de serialización en términos de rendimiento temporal y espacial.

JSON elige usar fastjson.

La herramienta de serialización utiliza Protostuff y Kyro. ¿Por qué no usar protobuf? Porque siento que para una clase Java con cientos de propiedades existentes, crear un nuevo archivo proto coincidente es un poco antihumano. Protostuff es una versión mejorada de Protobuf, que permite serializar un objeto Java directamente, usándolo de forma similar a Kyro, pero sin tantos procesos intermedios como Protobuf. Otros, como Hession, Java con serialización, etc., se dice que tienen un rendimiento mucho peor que Kryo y Protobuf, así que no sé qué esperar.

Tras una prueba sencilla, descubrí que la diferencia era bastante evidente, así que sentí que no era necesario hacer una evaluación específica. Corta un párrafo del registro y mándalo, todo el mundo lo siente.

coste time es System.nanoTime(); Las tres son las configuraciones predeterminadas sin ninguna configuración.
La huella espacial tras la serialización es ligeramente menor que la del protomaterial, y ambos son mucho más altos que JSON. Esto es fácil de entender, al fin y al cabo, las cadenas json son legibles, no fuerces demasiado.
El tiempo necesario para serializar y deserializar es mejor que en Kyro sobre FastJSON, y la diferencia es bastante evidente.

Así que, en conclusión, si no hay requisitos extremadamente exigentes para el espacio, Protostuff puede ser la mejor opción. Protostuff tiene una ventaja adicional sobre Kyro, es decir, si la clase Java añade campos después de la serialización y antes de la deserialización (lo cual es inevitable en el negocio real), Kyro será inútil. Sin embargo, el protostuff puede usarse siempre que se añada al final de la clase y utilice la serie Sun JDK. Por lo tanto, si la serialización se usa en escenarios como la caché, y el objeto serializado necesita almacenarse durante mucho tiempo, solo puedes elegir protostuff.

Por supuesto, si hace falta legibilidad o algo así, solo puedes usar json.




Anterior:asp.net Personalizar el nombre del id de sesión
Próximo:Comparación del rendimiento de Protobuf y JSON bajo la plataforma .NET
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com