我需要将序列化对象写入ByteBuffer。没有开销复制和中间转换的最快方法是什么?
我需要通过openmpi-java传输一个大对象(超过2GB),这可能只使用直接缓冲区,我想把提出的想法作为基础。
答案 0 :(得分:0)
我所做的是创建一个包装ByteBuffer的OutputStream。将OutputStream传递给您喜欢的序列化工具。我有一个支持这个的ByteBuffer的替代品,但它很容易添加。
BTW几乎所有序列化库都比标准Java序列化更快。
答案 1 :(得分:0)
概念上;只有JVM本身可以直接访问构成对象的内存中的字节。因此,无论您选择何种类型的序列化工具,都必须进行一定数量的转换和复制 。
因为您实际上要求获取对象的字段,并且根据元信息,将其内容复制到某些字节中。如果没有复制/转换,这根本行不通。
除了;我想知道你是否在看这里的“正确”问题。序列化本身就是一项代价高昂的操作。有很多方法可以做到;它们有着截然不同的特性。
我所说的是:你确定你应该担心表现吗?或许,您花了更多时间考虑使用这种或那种序列化技术的长期后果。或(对象)序列化对象涉及的安全风险?
长话短说:是什么让你认为表现是一个问题?