我必须将一棵巨大的对象树 (7,000) 序列化到磁盘中。最初我们使用 Kodo 将这棵树保存在数据库中,但它会进行成千上万次查询以将这棵树加载到内存中,并且会占用本地 Universe 的大部分可用时间。
我为此尝试了序列化,确实我得到了性能提升。但是,我觉得我可以通过编写自己的自定义序列化代码来改进这一点。我需要尽快加载这个序列化对象。
在我的机器上,序列化/反序列化这些对象大约需要 15 秒。从数据库加载它们时,大约需要 40 秒。
考虑到由于对象在树中,它们相互引用,我可以做些什么来提高这种性能的任何提示?
最佳答案
不要忘记对不需要序列化的实例变量使用“transient”关键字。这会提高性能,因为您不再读取/写入不必要的数据。
关于Java 对象序列化性能技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602079/