gpt4 book ai didi

java - 在 Java 对象之间复制数据的最快方法是什么?

转载 作者:行者123 更新时间:2023-11-30 07:32:14 25 4
gpt4 key购买 nike

我有各种 Java 对象集,其中一些是从 JAXB 工具生成的 pojos,一些是域类等。在大型应用程序中,我需要从一组对象中获取数据并放入另一组对象中它们具有不同的数据使用能力。

有多种方法可以做到这一点:对象映射框架是一个显而易见的选择。然而,大多数具有坚实代码库和社区的框架都使用反射。(例如推土机)

我一直在使用采用 pojos 和更复杂的 java 类来访问者模式的适配器组合,以便在适配器上行走的访问者走过一组对象,并在此过程中创建另一组对象(对象通常有父/子/树类型的引用)特别是当使用引用传递而不是创建新的字符串等时,这应该是最快的可用方法。

你能想到其他方法吗?对内存中的字节数组进行某种序列化,然后反序列化?它能否在性能方面击败基于访问者的副本?我对像 Dozer 这样基于反射的方法不公平吗?这是应用程序中的关键操作,因此任何改进都可能显着提高整体性能。

最佳答案

访问者模式应该非常接近最佳性能。由于任何类型的通用映射的开销,任何涉及序列化的事情都会变得更糟。

我不是特别熟悉推土机——但是如果反射本质上是用来自动执行您手工编写的代码,那么它不一定会受到如此大的打击;也就是说,如果它一次生成一个类(或等效的逻辑树)来定义复制操作,然后重复运行它。反射成本被分摊到大量操作中,变得可以忽略不计。

关于java - 在 Java 对象之间复制数据的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6708583/

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