264.protobuf 有多耗内存?

Posted 每天一个开发小知识

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 引起的


不过


我现在也没有证据证明这个怀疑是否正确


每天一个开发小知识,今天你学废了吗?


以上是关于264.protobuf 有多耗内存?的主要内容,如果未能解决你的问题,请参考以下文章

C 中的共享内存代码片段

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

DOM 元素的内存大小有多大? [复制]

Relay/Apollo 碎片应该有多细?

java内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段

shmop / PHP 共享内存有多可靠?