【发布时间】:2012-05-14 09:37:24
【问题描述】:
我需要为我的一个项目深度复制 Java 对象;我想知道是否可以为此使用序列化。
对象相当小(每个生产中使用序列化,或者考虑到序列化的性能,这仍然是一个非常糟糕的主意?
如果这仍然是一个坏主意,我可以考虑为每个此类使用复制构造函数/静态复制方法来提高性能。还有其他方法吗?
【问题讨论】:
-
对于每天会被调用几次的东西,性能实际上是无关紧要的,除非你假设你的对象图的序列化需要超过 8 个小时。
-
+1。在考虑其他解决方案之前,先测量一下这段快速编写代码的时间。是的,它很慢。但可能还不足以让您注意到它。如果需要,您可以在以后轻松更换它。
-
@EJP,谢谢。我以前从未在生产中这样做过,所以试图找出是否有人以前做过,以及其中面临的任何性能问题。
-
“是的,它很慢”。相比什么?正是像这样没有内容、毫无意义的陈述给 OP 造成了这种困境。在过去的 15 年里,它并没有被部署到数百万个应用程序中,速度并不慢。
-
正如 EJP 所说,如果您的例程应该只被调用几次,则性能不应该受到关注。您可以序列化您的对象,或者如果您的对象更大并且您不需要包含的全部数据,那么您可能可以只提取和序列化所需的数据集而不是整个对象集。稍后,您可以在需要时使用工厂从提取的数据中重建对象集。
标签: java performance serialization cloning