Skip to content

thrift中的TSDataValue类的内存浪费问题 #62

@jt2594838

Description

@jt2594838

在Thrift中,一个数据点的值使用下面的结构表示的:

struct TSDataValue{
  1: required bool is_empty
  2: optional bool bool_val
  3: optional i32 int_val
  4: optional i64 long_val
  5: optional double float_val
  6: optional double double_val
  7: optional binary binary_val
  8: optional string type;
}

也就是说在内存中保存一个数据点实际上用了4 + 4 + 4 + 8 + 8 + 8 + 8 + 8 = 52byte的内存。
尽管大部分字段以optional修饰,但这仅表示在序列化时该字段可能不会被序列化,不会减小其存在于内存时的大小。
需要检讨这种设计是否会造成过大的内存占用。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions