Proto Buffer使用中的内存泄漏

网友投稿 2780 2022-09-19

Proto Buffer使用中的内存泄漏

Proto Buffer使用中的内存泄漏

1.protobuf 在VC下的内存泄漏-需调用ShutdownProtobufLibrary   c++中使用google protobuf在关闭应用程序之前需要调用google::protobuf::ShutdownProtobufLibrary();要不然会有内存泄露。 其实这样也会同样存在内存泄露的问题。 下面是Google给出的建议原文翻译: 性能提示:在性能上,我们还可以做一些额外的工作,使得 Protocol Buffers 更加高效,其中关键的一个问题就是内存管理。我们可以尽量的复用 Protocol Buffers message 类,我们对 message 进行了 clear 之后,message 的内存并不会被释放而可以直接重新使用(也就避免了再次分配内存的开销)。message 的内存的使用情况可以通过函数 SpaceUsed 获取。另外,你也可以尝试使用其他的内存分配器,例如 Google’s tcmalloc,它对多线程中分配大量小对象有很好的优化。 protocol buffer 推荐循环,重复使用,但是由于每次放入的东西内容大小不一致,导致内存泄露,所以需要动态监测protocol buffer的大小,动态删除。 另外,当嵌套使用protocol buffer时,推荐递归clear。当大量进行malloc,free操作时会出现内存碎片和加重cpu的负载 2.google protocol-buffers c++ repeated 链表结构释放内存空间   在使用 Repeated 类型 链表结构 使用add_foo() 以后,要注意clear_foo() 释放内存空间,最好的办法是在该链表类的析构方法中执行 this->clear_foo();

没有坚守就没有事业,没有执着就没有未来!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Windows KMS 服务部署
下一篇:Python哈希表和解析式(python哈希表和字典)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~