gpt4 book ai didi

Java自定义序列化最佳实践

转载 作者:行者123 更新时间:2023-12-02 07:50:51 25 4
gpt4 key购买 nike

我试图通过从 Serialized 接口(interface)切换到Externalized 来提高当前的序列化性能,但没有找到大量有关创建自定义和高性能序列化的最佳实践的文档。我当前的解决方案大约是普通 Java 序列化速度的两倍,虽然很好,但似乎并没有达到我预期的巨大改进 ( Benchmark of serialization techniques/libraries )

对于除基元之外的任何内容,我都采用了写入 0 或 1 来显示字段存在的方法,然后如果值为 1 则读取该字段:

if (in.read() == 1) {
name = in.readUTF();
}

这听起来对吗?有更好的编码可以使用吗? map 、列表和其他复杂的数据结构又如何呢?枚举的默认序列化可以吗?

谢谢。

最佳答案

有什么理由不使用现有的序列化框架 - 但比 Java 内置的更好的序列化框架?我自己的偏好是Protocol Buffers ,但也有其他选择,例如 Thrift。我会尽量避免进行自己的低级序列化,除非您确实无法避免它。您链接到的页面显示了很多替代方案。

您应该同时考虑性能和可维护性。虽然Externalized可以为您提供出色的性能,但这取决于您最终如何实现它 - 并且您可能会做得很好,也可能做得很糟糕......但是一切都将是手动的。

关于Java自定义序列化最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10249998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com