264.protobuf 有多耗内存?(二)
每天一个开发小知识
前两天工作中遇到:
55M 的数据放到 protobuf 中
protobuf 占用的内存为 1.4G
总感觉 protobuf 不至于这么差
今天特意写个测试代码
test.protomessage TestPb{optional uint32 id = 1;optional uint32 qid = 2;};
// main.cppvoid TestPB(){uint32_t len = 1024 * 1024;TestPb * pb = new TestPb[len];for (uint32_t i = 0; i < len; ++i){pb[i].set_id(100);pb[i].set_qid(100);}cout << "sizeof(pb):" << sizeof(pb) << endl;cout << "sizeof(TestPb):" << sizeof(TestPb) << endl;sleep(10 * 60);}
预估 40M 的数据放入 protobuf 中
实际内存为 30M
这个测试数据让我不得不怀疑
那天内存下降 1.4G 并不是 protobuf 引起的
不过
我现在也没有证据证明这个怀疑是否正确
每天一个开发小知识,今天你学废了吗?
