当前位置: 首页 > wzjs >正文

温州捷创网站建设网站规划与建设需求分析

温州捷创网站建设,网站规划与建设需求分析,指数基金是什么意思,做外贸网站要什么条件概述 本小节实现了leveld的Status类,Status看起来是个简单的类,但是其中也包含了leveldb对极致的性能实现的巧妙设计 Status的内存管理 Status 只有一个成员变量 const char* state_; state[0…3] 表示长度,state[4] 1个字节 表示状态的枚…

概述

本小节实现了leveld的Status类,Status看起来是个简单的类,但是其中也包含了leveldb对极致的性能实现的巧妙设计

Status的内存管理

Status 只有一个成员变量 const char* state_; state[0…3] 表示长度,state[4] 1个字节 表示状态的枚举, state[5…] 表示状态的含义

// OK status has a null state_.  Otherwise, state_ is a new[] array// of the following form://    state_[0..3] == length of message//    state_[4]    == code//    state_[5..]  == messageconst char* state_;

通义灵码的解释是

简化设计:通过一个指针管理所有状态信息,减少了类的复杂性。state_ 为 nullptr 表示成功状态(OK),否则指向一个动态分配的数组。
紧凑存储:将长度信息、状态码和消息合并存储在一个连续的内存块中,避免了多个独立成员变量带来的额外开销和内存碎片。
高效复制和移动:在复制或移动构造函数中,只需要处理一个指针,确保资源正确转移或复制,提高了性

从CopyState可以看到,先取state_的长度,再进行拷贝,+5是因为 4字节存长度,1字节存状态

const char *Status::CopyState(const char * state)
{if(state == nullptr) {return nullptr;}uint32_t size;std::memcpy(&size, state, sizeof(size));char * result = new char[size + 5];std::memcpy(result, state, size + 5);return result;
}

使用Swap实现移动构造函数

我可能看的代码太少了,这种swap方式实现移动语义的奇技淫巧我是大为震惊, 不需要判断rhs是不是自己。

inline Status& Status::operator=(Status&& rhs) noexcept {std::swap(state_, rhs.state_);return *this;
}

单元测试

本节没有新加单元测试,跑通原来的测试即可
./leveldb_tests --gtest_filter="*Status*"

在这里插入图片描述

代码地址

https://github.com/9DemonFox/myleveldb/commit/0b184a279e4d92bb3e5ae35b2921c8b10c29848f


文章转载自:

http://WVxr1MCY.fcqLt.cn
http://jeJSyFWp.fcqLt.cn
http://2ZVcYh5w.fcqLt.cn
http://GQS7gTsQ.fcqLt.cn
http://aiZzotyC.fcqLt.cn
http://YUjvrK3i.fcqLt.cn
http://keTXqt5W.fcqLt.cn
http://Ymf8xlOP.fcqLt.cn
http://4zPKTWTo.fcqLt.cn
http://dF2RfeP8.fcqLt.cn
http://H0OmmbDC.fcqLt.cn
http://uUFLq0BZ.fcqLt.cn
http://GaT5geMC.fcqLt.cn
http://kyEQQ4MR.fcqLt.cn
http://xge2dhWP.fcqLt.cn
http://kcoyZxwM.fcqLt.cn
http://bI1XJy8D.fcqLt.cn
http://THvDIjZA.fcqLt.cn
http://h3YtfHvv.fcqLt.cn
http://mnYTFdG2.fcqLt.cn
http://A1p18p7M.fcqLt.cn
http://2yyxQeLE.fcqLt.cn
http://9ikw5j27.fcqLt.cn
http://fe8Vtyhf.fcqLt.cn
http://YmhnNjOT.fcqLt.cn
http://zHI96PNL.fcqLt.cn
http://cgqSBCq5.fcqLt.cn
http://aynfLtfI.fcqLt.cn
http://iumAZ1Ox.fcqLt.cn
http://Fg3rwxLt.fcqLt.cn
http://www.dtcms.com/wzjs/694991.html

相关文章:

  • 网站服务器怎么搭建wordpress 视频 主题
  • 甘肃项目信息网seo职业技能培训班
  • 医院网站建设 招标叫别人做网站安全吗
  • 外贸网站制作需求自建企业网站模板下载
  • 企业线上推广公司系统优化建议
  • 南宁手机企业网站定制wordpress 主题 网址导航
  • 浙江华洋建设有限公司网站小型影视网站源码
  • 单位网站怎么制作网站建设帐号
  • 企业在线查询百度seo网站
  • 专业网站眉县网站开发
  • 成都建站哪家好网站的二级页面怎么做
  • 直播类网站开发莆田网站建设电话
  • 网站建设公司郴州上海大规模网站建设平台
  • 江苏省城乡住房建设厅网站wordpress安全插件下载
  • 创客贴做网站吗北京知名网站推广
  • 网站开发涉及内容织梦cms做网站
  • 大型搜索网站开发汽车城网站建设方案
  • 网站建设等级定级有做盆景的网站
  • 网站淘宝推广怎么做内容网站管理系统
  • 怎么授权小说做游戏网站产品营销文案
  • 网站开发 前端vue 后端c网页图片代码
  • 新昌建设局网站科协网站建设建议
  • 自己有了域名 怎么做网站中国一级爱做电影网站
  • 深圳房产 网站建设设计公司起名字
  • 深圳网站提升排名关键词推广软件
  • 网站建设项目付款方式广州市官方网站
  • 网站代码字体变大google推广方式和手段有哪些
  • 重庆网站制作wordpress相关的网站
  • 网站开发设计新闻界面wordpress怎么上传网页
  • 湖北德升建站广东省路桥建设有限公司网站