Java 对象序列化性能技巧

标签 java serialization

我必须将一棵巨大的对象树 (7,000) 序列化到磁盘中。最初我们使用 Kodo 将这棵树保存在数据库中,但它会进行成千上万次查询以将这棵树加载到内存中,并且会占用本地 Universe 的大部分可用时间。

我为此尝试了序列化,确实我得到了性能提升。但是,我觉得我可以通过编写自己的自定义序列化代码来改进这一点。我需要尽快加载这个序列化对象。

在我的机器上,序列化/反序列化这些对象大约需要 15 秒。从数据库加载它们时,大约需要 40 秒。

考虑到由于对象在树中,它们相互引用,我可以做些什么来提高这种性能的任何提示?

最佳答案

不要忘记对不需要序列化的实例变量使用“transient”关键字。这会提高性能,因为您不再读取/写入不必要的数据。

关于Java 对象序列化性能技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602079/

相关文章:

java - 获取 Super 的属性值而不是实际对象

Java 将播放器平滑地从一处移动到另一处

Java - 优雅地退出线程

ios - 包含 NSTextAttachment 的 NSAttributedString 可以存储(或恢复)吗?

python - DRF oneToOneField 创建序列化器

java - hibernate、stackoverflow 与特定实体映射

java - 在 Java 中从视频创建图像帧时出错

python - Python 生成器可以轻松保存并从磁盘重新加载吗?

json - encoding/json unmarshal 缺少一个字段

java - 我可以将 java 序列化对象反序列化为不同的类吗?