将数据读入内存vs跳过读取



在数据结构中读取并在丢弃之前访问字段与读取类型并跳过结构体之间是否存在很大的速度差异?

我正在为工具之间的数据接口设计一个tlv类型的接口。

工具输出的结构可以是服务1或服务2,并且可以打开或关闭。我降落的界面是Type | Length | data_structure

现在,接收这些tlv的一些工具只关心正在打开的东西,而可以忽略关闭的东西。有些工具只关心服务1并且正在打开的东西。

我决定把on/off作为类型字段的一部分。data_structure内部包含一个字段,用于确定它们是服务1还是服务2。

我的问题是,我应该将服务1/2编码到类型字段中,还是只在data_structure中?

实际上我可以有类型

  1. 打开
  2. 关闭

  1. 服务1打开
  2. 服务1关闭
  3. 服务2开启
  4. 服务2关闭

我的想法是,在类型字段中包含服务1/2将使那些不关心服务2的工具的接口更快。它们可以读取类型,然后将文件指针移动到下一个TLV,而不是将结构体读入内存,访问服务类型,然后丢弃。这种推理准确吗?

绝对建议您将类型和数据分开。它是一个格式为"类型|长度|数据结构"的"协议"。无论如何,不要破坏你的规则。

顺便说一句。,通过使用数据指针,你不需要复制数据,如果可能的话。这样可以节省处理时间。

最新更新