Java序列化以在任何语言之间传输数据
问题: 而不是编写自己的序列化算法;是否可以像我在下面所做的那样,只使用内置的Java序列化,同时仍然可以跨多种语言工作Java序列化以在任何语言之间传输数据,java,serialization,Java,Serialization,问题: 而不是编写自己的序列化算法;是否可以像我在下面所做的那样,只使用内置的Java序列化,同时仍然可以跨多种语言工作 说明: 我想象它是如何工作的,如下所示:我启动一个过程,这将是一个特定于语言的程序——用这种语言编写。例如,我有一个CppExecutor.exe文件。我会将数据写入这个程序的流中。然后程序将执行它需要执行的操作,然后返回一个结果 为此,我需要以某种方式序列化数据。首先想到的是使用ObjectInputStream和ObjectOutputStream的基本JavaSeri
说明: 我想象它是如何工作的,如下所示:我启动一个过程,这将是一个特定于语言的程序——用这种语言编写。例如,我有一个CppExecutor.exe文件。我会将数据写入这个程序的流中。然后程序将执行它需要执行的操作,然后返回一个结果 为此,我需要以某种方式序列化数据。首先想到的是使用
ObjectInputStream
和ObjectOutputStream
的基本JavaSerialization
。我读到的大部分内容只说明Java序列化是Java到Java应用程序
所有数据都不需要存储在文件中。传输这些数据包的方法是通过我已经设置好的
数据将由以下内容组成:
-主要包含向用户显示的信息字符串
-最有可能是32位。不需要处理时间李>整数
-仅用于处理所有浮点值李>Float
-确保使用正确的类型字符
-由此列表中的任何元素组成数组
length
表示String
和Array
。然后,下面的数据
旁注:
我还想指出,这些计算中有很多都会发生,每一毫秒都可能产生影响。因此,基于文本的格式(如JSON)可能会产生更大的操作时间。考虑到非数据包需要人工解释,只使用字节不会成为问题。有一种二进制json格式,称为 我还想指出,这些计算中有很多将要进行,因此基于文本的格式(如JSON)可能会产生更大的操作时间
在测量之前不要进行优化。 过早优化是万恶之源
你能试着测试一下吞吐量吗?看看它是否适合您的需要?有一种二进制json格式,名为 我还想指出,这些计算中有很多将要进行,因此基于文本的格式(如JSON)可能会产生更大的操作时间
在测量之前不要进行优化。 过早优化是万恶之源
你能试着测试一下吞吐量吗?看看它是否适合你的需要?我推荐谷歌:它是二进制的、稳定的、经过验证的,并且对你提到的所有语言都有绑定。此外,它还可以很好地处理结构化数据。我推荐谷歌:它是二进制的、稳定的、经过验证的,并且对您提到的所有语言都有绑定。此外,它还可以很好地处理结构化数据。Thrift、Protobuf、JSON、MessagePack 安装的复杂性节约>>Protobuf>BSON>MessagePack>JSON 序列化数据大小JSON>MessagePack>Binary Thrift>Compact Thrift>Protobuf
时间成本压缩节约>二进制节约>Protobuf>JSON>MessagePack节约,Protobuf,JSON,MessagePack 安装的复杂性节约>>Protobuf>BSON>MessagePack>JSON 序列化数据大小JSON>MessagePack>Binary Thrift>Compact Thrift>Protobuf
时间成本压缩节约>二进制节约>Protobuf>JSON>MessagePack在我看来,有一大堆“浪费”是没有好处的。我是唯一一个最有可能阅读数据包的人,我能很好地解释字节。我还在计划中,所以除非我想为这个程序重写一个非常大的组件,否则我想从一个坚实的基础上开始。所以你的问题是:“在进程之间发送大量数据有多糟糕?”(我无法明确表述)进程间通信相当快。它甚至不必是复制操作。如果接收器未对内存进行修改,则无需复制内存。有虚拟内存的操作系统可以做到这一点。我有一个问题,我无法回答其他问题,因为我不知道什么是“以坚实的基础开始”,“坚实的基础”,什么是“重写”,“解释字节罚款”的意思。“在我看来,有一堆‘浪费’是没有好处的。”这是基于两次观点的,是无法衡量的。如果你能详细讨论这一点,重新设计你的问题,你将有机会得到一个新的答案。举个例子也不错。在哪个用例中,在两个进程之间发送哪些字节?这使你更容易理解你的目标。因为你的问题没有得到足够的重视,所以不要害怕完成它。祝你好运!还要对代码和我们在那里看到的东西进行评论。在我看来,有一堆“浪费”是没有好处的。我是唯一一个最有可能阅读数据包的人,我能很好地解释字节。我还在计划中,所以除非我想为这个程序重写一个非常大的组件,否则我想从一个坚实的基础上开始。所以你的问题是:“在进程之间发送大量数据有多糟糕?”(我无法明确表述)进程间通信相当快。它甚至不必是复制操作