<分区>
我有一个 C++ 程序和一个 Java 程序。在 C++ 方面,我有一个包含数百万个条目的 vector 。我需要将这些数据传输到我的 Java 程序中。到目前为止,我已经尝试了以下方法:
创建了一个unix socket,将vector转换为一个长字符串(序列化)并通过unix socket发送
创建了一个 thrift 服务器/客户端模型来传输数据
这两种方法都非常有效,但我获得的性能却很低。我什至没有看到它使用了完整的网络带宽(在 Thrift 的情况下)。
还有 unix 套接字方法,因为我将它序列化为字符串,然后再次将此字符串转换回字符串数组(接收字节 [] 为字符串并拆分)在 Java 端是非常昂贵的操作。
将数据从 C++ 世界更快地传输到 Java 世界并减少重建/序列化对象的开销的最佳方法是什么?