【问题标题】:Whats the difference between Marshaling/Unmarshaling Vs Serialization/Deserialization?编组/解组与序列化/反序列化有什么区别?
【发布时间】:2019-07-21 19:52:42
【问题描述】:
  1. 这两个词的意思一样吗?
  2. 如果不是,两者有什么区别?

【问题讨论】:

  • 一般来说,它们是基本相同过程的两对术语。某些系统或其他系统可能会有所区别,但如果没有更多上下文,它们是“相同的”。
  • 我一直认为法警负责逮捕通缉逃犯、保护联邦司法机构、运送联邦囚犯、保护濒临灭绝的联邦证人以及管理从犯罪企业中没收的资产!?
  • @Swordfish 也许区别是printf("%d", strcmp("Marshaling", "Marshaling");? ;-)
  • 为什么标记为Go?你期待一些 Go 特定的答案吗?

标签: c arrays go stream byte


【解决方案1】:

我使用术语“编组”来表示“将数据/参数放入可以通过只接受特定形式的接口的形式”,而“序列化”具体表示“用字节流表示数据”。也就是说,序列化是一种封送处理方法,但在我称之为封送处理的领域之外也有用途。

一些非序列化的编组示例:

  • 将系统调用的参数放入内核系统调用入口点接受的寄存器中。 (我不会称之为序列化,因为寄存器之间没有抽象顺序,并且因为某些数据可能位于实际寄存器之外,而是被它们指向。)
  • 从 JSON 或 XML 源构建树结构以传递到需要树的接口。 (这不是序列化,因为表单是语言级别的对象,它们之间有引用,而不是字节流。)
  • 在主机应用程序和嵌入式语言(如 Lua)之间来回传递数据。

【讨论】:

  • 在序列化/反序列化时是否特定于编组/解组语言?语言独立吗?
  • @akh:在我使用这些词的意义上,语言也与此无关。
  • “将数据/参数放在可以通过只接受特定表单的接口的表单中” - 你能举个例子吗?
猜你喜欢
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 1970-01-01
  • 2023-03-11
  • 2013-12-30
  • 2014-07-14
相关资源
最近更新 更多